Kaydet (Commit) c67026f2 authored tarafından Zolnai Tamás's avatar Zolnai Tamás

libgltf: Append shader language version to the shader files

In general glTF shader files does not contain version
directives and in some case it make shader compiler
using GLSL 1.1 which leads to that the shader compiler
fails.
So we need to append the choosen version number which is
GLSL 1.3 in case of libgltf, but this also means that
from that point OpenGL 3.0 is the new reuirements since
GLSL 1.3 is available only from that version.

Change-Id: Ic4382266432ea474aeb3e603b32a998b9aeed280
üst d4fccd7d
......@@ -234,18 +234,7 @@ awt::Size SAL_CALL OGLPlayer::getPreferredPlayerWindowSize() throw ( uno::Runtim
static bool lcl_CheckOpenGLRequirements()
{
float fVersion = OpenGLHelper::getGLVersion();
if( fVersion >= 3.0 )
{
return true;
}
else if( fVersion >= 2.1 )
{
return glewIsSupported("GL_ARB_framebuffer_object GL_ARB_vertex_array_object");
}
return false;
return OpenGLHelper::getGLVersion() >= 3.0;
}
uno::Reference< media::XPlayerWindow > SAL_CALL OGLPlayer::createPlayerWindow( const uno::Sequence< uno::Any >& rArguments )
......
......@@ -17,6 +17,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libgltf,1))
$(eval $(call gb_UnpackedTarball_add_patches,libgltf,\
external/libgltf/patches/missing_include.patch \
external/libgltf/patches/append_shader_version.patch \
))
# vim: set noet sw=4 ts=4:
diff -ur libgltf.org/src/Shaders.cpp libgltf/src/Shaders.cpp
--- libgltf.org/src/Shaders.cpp 2014-08-17 09:15:17.379255115 +0200
+++ libgltf/src/Shaders.cpp 2014-08-17 09:16:43.323258781 +0200
@@ -11,6 +11,7 @@
#include <GL/glew.h>
#include <cstdio>
+#include <cstring>
namespace libgltf
{
@@ -166,7 +167,17 @@
unsigned int shaderId)
{
GLint iGLSize = iSize;
- glShaderSource(shaderId, 1, &pShader, &iGLSize);
+ const GLchar* aSources[] = {
+ "#version 130\n",
+ pShader,
+ };
+
+ const GLint aSizes[] = {
+ strlen("#version 130\n"),
+ iGLSize,
+ };
+
+ glShaderSource(shaderId, 2, &aSources[0], &aSizes[0]);
glCompileShader(shaderId);
int iStatus = 0;
glGetShaderiv(shaderId, GL_COMPILE_STATUS, &iStatus);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment