Fixed OpenGL 4 not loading sampler objets

Also fixed file encoding


Former-commit-id: 51683c2d9dff8a56c96ad972c8b6d6006004f1f2
This commit is contained in:
Lynix 2012-12-08 11:48:30 +01:00
parent dc3af6ae69
commit 119a1420d1
1 changed files with 18 additions and 18 deletions

View File

@ -1,4 +1,4 @@
// Copyright (C) 2012 Jérôme Leclercq
// Copyright (C) 2012 Jérôme Leclercq
// This file is part of the "Nazara Engine - Renderer module"
// For conditions of distribution and use, see copyright notice in Config.hpp
@ -69,7 +69,7 @@ namespace
return false;
}
// On peut sûrement faire plus rapide mais comme ça ne se fait qu'une fois et que NzString implémente le COW...
// On peut sûrement faire plus rapide mais comme ça ne se fait qu'une fois et que NzString implémente le COW...
std::vector<NzString> ext;
extensionString.Split(ext);
@ -126,18 +126,18 @@ namespace NzOpenGL
return false;
}
// Le chargement des fonctions OpenGL nécessite un contexte OpenGL
// Le chargement des fonctions OpenGL nécessite un contexte OpenGL
NzContextParameters parameters;
parameters.majorVersion = 2;
parameters.minorVersion = 0;
parameters.shared = false;
/*
Note: Même le contexte de chargement nécessite quelques fonctions de base pour correctement s'initialiser
Pour cette raison, deux contextes sont créés, le premier sert à récupérer les fonctions permetttant
de créer le second avec les bons paramètres.
Note: Même le contexte de chargement nécessite quelques fonctions de base pour correctement s'initialiser
Pour cette raison, deux contextes sont créés, le premier sert à récupérer les fonctions permetttant
de créer le second avec les bons paramètres.
Non sérieusement si quelqu'un a une meilleure idée qu'il me le dise.
Non sérieusement si vous avez une meilleure idée contactez-moi
*/
/****************************************Initialisation****************************************/
@ -160,9 +160,9 @@ namespace NzOpenGL
glXCreateContextAttribs = reinterpret_cast<PFNGLXCREATECONTEXTATTRIBSARBPROC>(LoadEntry("glXCreateContextAttribsARB", false));
#endif
// Récupération de la version d'OpenGL
// Ce code se base sur le fait que la carte graphique renverra un contexte de compatibilité avec la plus haute version supportée
// Ce qui semble vrai au moins chez ATI/AMD et NVidia, mais si quelqu'un à une meilleure idée ...
// Récupération de la version d'OpenGL
// Ce code se base sur le fait que la carte graphique renverra un contexte de compatibilité avec la plus haute version supportée
// Ce qui semble vrai au moins chez ATI/AMD et NVidia, mais si quelqu'un à une meilleure idée ...
glGetString = reinterpret_cast<PFNGLGETSTRINGPROC>(LoadEntry("glGetString", false));
if (!glGetString)
{
@ -448,7 +448,7 @@ namespace NzOpenGL
openGLextensions[nzOpenGLExtension_PixelBufferObject] = (openGLversion >= 210 || IsSupported("GL_ARB_pixel_buffer_object"));
// SamplerObjects
if (openGLversion >= 430 || (openGLversion < 400 && openGLversion >= 330) || IsSupported("GL_ARB_sampler_objects"))
if (openGLversion >= 330 || IsSupported("GL_ARB_sampler_objects"))
{
try
{
@ -478,7 +478,7 @@ namespace NzOpenGL
glProgramUniform4fv = reinterpret_cast<PFNGLPROGRAMUNIFORM4FVPROC>(LoadEntry("glProgramUniform4fv"));
glProgramUniformMatrix4fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4FVPROC>(LoadEntry("glProgramUniformMatrix4fv"));
// Si ARB_gpu_shader_fp64 est supporté, alors cette extension donne également accès aux fonctions utilisant des double
// Si ARB_gpu_shader_fp64 est supporté, alors cette extension donne également accès aux fonctions utilisant des double
if (openGLextensions[nzOpenGLExtension_FP64])
{
glProgramUniform1d = reinterpret_cast<PFNGLPROGRAMUNIFORM1DPROC>(LoadEntry("glProgramUniform1d"));
@ -540,9 +540,9 @@ namespace NzOpenGL
if (!glGenerateMipmap)
glGenerateMipmap = reinterpret_cast<PFNGLGENERATEMIPMAPEXTPROC>(LoadEntry("glGenerateMipmapEXT", false));
/****************************************Contexte de référence****************************************/
/****************************************Contexte de référence****************************************/
///FIXME: Utiliser le contexte de chargement comme référence ? (Vérifier mode debug)
///FIXME: Utiliser le contexte de chargement comme référence ? (Vérifier mode debug)
if (!NzContext::Initialize())
{
NazaraError("Failed to initialize contexts");
@ -653,7 +653,7 @@ namespace NzOpenGL
return true;
case nzPixelFormat_Stencil1:
if (type == FormatType_Texture) // Les formats de stencil ne sont pas supportés par les textures
if (type == FormatType_Texture) // Les formats de stencil ne sont pas supportés par les textures
return false;
else
{
@ -732,7 +732,7 @@ namespace NzOpenGL
0, // nzElementUsage_Position
3, // nzElementUsage_Tangent
4 // nzElementUsage_TexCoord (Doit être le dernier de la liste car extensible)
4 // nzElementUsage_TexCoord (Doit être le dernier de la liste car extensible)
};
GLenum BlendFunc[nzBlendFunc_Max+1] =
@ -779,8 +779,8 @@ namespace NzOpenGL
GLenum BufferUsage[nzBufferUsage_Max+1] =
{
// J'ai choisi DYNAMIC à la place de STREAM car DYNAMIC semble plus adapté au profil "une mise à jour pour quelques rendus"
// Ce qui est je pense le scénario qui arrivera le plus souvent (Prévoir une option pour permettre d'utiliser le STREAM_DRAW ?)
// J'ai choisi DYNAMIC à la place de STREAM car DYNAMIC semble plus adapté au profil "une mise à jour pour quelques rendus"
// Ce qui est je pense le scénario qui arrivera le plus souvent (Prévoir une option pour permettre d'utiliser le STREAM_DRAW ?)
// Source: http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=160839
GL_DYNAMIC_DRAW, // nzBufferUsage_Dynamic
GL_STATIC_DRAW // nzBufferUsage_Static