From d6ef4e3547e3faed1ff6c6ee3993de1884da1096 Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 25 Dec 2012 12:33:42 +0100 Subject: [PATCH] Made demo use ShaderBuilder Former-commit-id: 8b915f244c95ff7d0d20a980feed6998c7f2e441 --- examples/AnimatedMesh/main.cpp | 46 +++------------------------------ examples/bin/shaders/basic.frag | 10 ------- examples/bin/shaders/basic.vert | 14 ---------- 3 files changed, 3 insertions(+), 67 deletions(-) delete mode 100644 examples/bin/shaders/basic.frag delete mode 100644 examples/bin/shaders/basic.vert diff --git a/examples/AnimatedMesh/main.cpp b/examples/AnimatedMesh/main.cpp index 9d4394a08..06e5c554b 100644 --- a/examples/AnimatedMesh/main.cpp +++ b/examples/AnimatedMesh/main.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -19,9 +20,6 @@ int main() std::cout << "Left click to capture/free the mouse" << std::endl; std::cout << "Right click to control Dr. Freak" << std::endl; - // Cette ligne active le mode de compatibilité d'OpenGL lors de l'initialisation de Nazara (Nécessaire pour le shader) - NzContextParameters::defaultCompatibilityProfile = true; - // Maintenant nous initialisons le Renderer (Qui initialisera le noyau ainsi que le module utilitaire) // Cette étape est obligatoire pour beaucoup de fonctionnalités (Notamment le chargement de ressources et le rendu) NzInitializer nazara; @@ -86,45 +84,7 @@ int main() // Il existe plusieurs langages de shaders, GLSL pour OpenGL, HLSL pour Direct3D et Cg qui peut être utilisé pour les deux. // Le Renderer de Nazara utilise OpenGL, par conséquent nous utiliserons le GLSL // La méthode NzShader::IsLanguageSupported permet de savoir si un langage est supporté. - NzShader shader; - if (!shader.Create(nzShaderLanguage_GLSL)) - { - std::cout << "Failed to load shader" << std::endl; - std::getchar(); - return EXIT_FAILURE; - } - - // Une fois le shader créé, nous devons lui spécifier les codes sources de nos shaders - // Pour notre exemple nous prendrons un shader très simple - // Un shader doit obligatoirement posséder au moins deux codes, un pour le fragment shader et un pour le vertex shader - - // Le fragment shader traite la couleur de nos pixels - if (!shader.LoadFromFile(nzShaderType_Fragment, "shaders/basic.frag")) - { - std::cout << "Failed to load fragment shader from file" << std::endl; - // À la différence des autres ressources, le shader possède un log qui peut indiquer les erreurs en cas d'échec - std::cout << "Log: " << shader.GetLog() << std::endl; - std::getchar(); - return EXIT_FAILURE; - } - - // Le vertex shader (Transformation des vertices de l'espace 3D vers l'espace écran) - if (!shader.LoadFromFile(nzShaderType_Vertex, "shaders/basic.vert")) - { - std::cout << "Failed to load vertex shader from file" << std::endl; - std::cout << "Log: " << shader.GetLog() << std::endl; - std::getchar(); - return EXIT_FAILURE; - } - - // Une fois les codes sources de notre shader chargé, nous pouvons le compiler, afin de le rendre utilisable - if (!shader.Compile()) - { - std::cout << "Failed to compile shader" << std::endl; - std::cout << "Log: " << shader.GetLog() << std::endl; - std::getchar(); - return EXIT_FAILURE; - } + const NzShader* shader = NzShaderBuilder::Get(nzShaderBuilder_DiffuseMapping); // Nos ressources sont chargées, et c'est bien beau, mais il nous faudrait une fenêtre pour afficher tout ça // Window représente une fenêtre singulière, pour y effectuer un rendu il nous faut une RenderWindow @@ -487,7 +447,7 @@ int main() drfreak.SetTranslation(translation); // On active le shader et paramètrons le rendu - NzRenderer::SetShader(&shader); + NzRenderer::SetShader(shader); // Notre scène 3D requiert un test de profondeur NzRenderer::Enable(nzRendererParameter_DepthTest, true); diff --git a/examples/bin/shaders/basic.frag b/examples/bin/shaders/basic.frag deleted file mode 100644 index 12648045a..000000000 --- a/examples/bin/shaders/basic.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 110 - -varying vec2 vTexCoord; - -uniform sampler2D DiffuseMap; - -void main() -{ - gl_FragColor = texture2D(DiffuseMap, vTexCoord); -} diff --git a/examples/bin/shaders/basic.vert b/examples/bin/shaders/basic.vert deleted file mode 100644 index 5e9825801..000000000 --- a/examples/bin/shaders/basic.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 110 - -attribute vec3 Position; -attribute vec2 TexCoord0; - -uniform mat4 WorldViewProjMatrix; - -varying vec2 vTexCoord; - -void main() -{ - gl_Position = WorldViewProjMatrix * vec4(Position, 1.0); - vTexCoord = TexCoord0; -}