mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1048747 - WebGL2 - GL symbols for GetIntegeri_v and GetInteger64i_v.; r=jgilbert
--HG-- extra : rebase_source : d4c5a1a6e4a5c6f772a4f69c2ff3edab50d0d6e4 extra : source : 9929d6519682ca1b0dac4e7390349a2254d711c5
This commit is contained in:
parent
5ba334c43f
commit
3f6740fe9b
@ -105,6 +105,7 @@ static const char *sExtensionNames[] = {
|
||||
"GL_EXT_color_buffer_half_float",
|
||||
"GL_EXT_copy_texture",
|
||||
"GL_EXT_draw_buffers",
|
||||
"GL_EXT_draw_buffers2",
|
||||
"GL_EXT_draw_instanced",
|
||||
"GL_EXT_draw_range_elements",
|
||||
"GL_EXT_frag_depth",
|
||||
@ -964,7 +965,6 @@ GLContext::InitWithPrefix(const char *prefix, bool trygl)
|
||||
{ (PRFuncPtr*) &mSymbols.fGetTransformFeedbackVarying, { "GetTransformFeedbackVarying", nullptr } },
|
||||
{ (PRFuncPtr*) &mSymbols.fPauseTransformFeedback, { "PauseTransformFeedback", nullptr } },
|
||||
{ (PRFuncPtr*) &mSymbols.fResumeTransformFeedback, { "ResumeTransformFeedback", nullptr } },
|
||||
{ (PRFuncPtr*) &mSymbols.fGetIntegeri_v, { "GetIntegeri_v", nullptr } },
|
||||
END_SYMBOLS
|
||||
};
|
||||
|
||||
@ -980,7 +980,6 @@ GLContext::InitWithPrefix(const char *prefix, bool trygl)
|
||||
{ (PRFuncPtr*) &mSymbols.fGetTransformFeedbackVarying, { "GetTransformFeedbackVaryingEXT", "GetTransformFeedbackVaryingNV", nullptr } },
|
||||
{ (PRFuncPtr*) &mSymbols.fPauseTransformFeedback, { "PauseTransformFeedbackNV", nullptr } },
|
||||
{ (PRFuncPtr*) &mSymbols.fResumeTransformFeedback, { "ResumeTransformFeedbackNV", nullptr } },
|
||||
{ (PRFuncPtr*) &mSymbols.fGetIntegeri_v, { "GetIntegerIndexedvEXT", "GetIntegerIndexedvNV", nullptr } },
|
||||
END_SYMBOLS
|
||||
};
|
||||
|
||||
@ -1149,6 +1148,41 @@ GLContext::InitWithPrefix(const char *prefix, bool trygl)
|
||||
}
|
||||
}
|
||||
|
||||
if (IsSupported(GLFeature::get_integer_indexed)) {
|
||||
SymLoadStruct coreSymbols[] = {
|
||||
{ (PRFuncPtr*) &mSymbols.fGetIntegeri_v, { "GetIntegeri_v", nullptr } },
|
||||
END_SYMBOLS
|
||||
};
|
||||
|
||||
SymLoadStruct extSymbols[] ={
|
||||
{ (PRFuncPtr*) &mSymbols.fGetIntegeri_v, { "GetIntegerIndexedvEXT", nullptr } },
|
||||
END_SYMBOLS
|
||||
};
|
||||
|
||||
bool useCore = IsFeatureProvidedByCoreSymbols(GLFeature::get_integer_indexed);
|
||||
|
||||
if (!LoadSymbols(useCore ? coreSymbols : extSymbols, trygl, prefix)) {
|
||||
NS_ERROR("GL supports get_integer_indexed without supplying its functions.");
|
||||
|
||||
MarkUnsupported(GLFeature::get_integer_indexed);
|
||||
ClearSymbols(coreSymbols);
|
||||
}
|
||||
}
|
||||
|
||||
if (IsSupported(GLFeature::get_integer64_indexed)) {
|
||||
SymLoadStruct coreSymbols[] = {
|
||||
{ (PRFuncPtr*) &mSymbols.fGetInteger64i_v, { "GetInteger64i_v", nullptr } },
|
||||
END_SYMBOLS
|
||||
};
|
||||
|
||||
if (!LoadSymbols(coreSymbols, trygl, prefix)) {
|
||||
NS_ERROR("GL supports get_integer64_indexed without supplying its functions.");
|
||||
|
||||
MarkUnsupported(GLFeature::get_integer64_indexed);
|
||||
ClearSymbols(coreSymbols);
|
||||
}
|
||||
}
|
||||
|
||||
if (IsSupported(GLFeature::gpu_shader4)) {
|
||||
SymLoadStruct gpuShader4Symbols[] = {
|
||||
{ (PRFuncPtr*) &mSymbols.fVertexAttribI4i, { "VertexAttribI4i", "VertexAttribI4iEXT", nullptr } },
|
||||
|
@ -94,6 +94,8 @@ MOZ_BEGIN_ENUM_CLASS(GLFeature)
|
||||
framebuffer_blit,
|
||||
framebuffer_multisample,
|
||||
framebuffer_object,
|
||||
get_integer_indexed,
|
||||
get_integer64_indexed,
|
||||
get_query_object_iv,
|
||||
gpu_shader4,
|
||||
instanced_arrays,
|
||||
@ -385,6 +387,7 @@ public:
|
||||
EXT_color_buffer_half_float,
|
||||
EXT_copy_texture,
|
||||
EXT_draw_buffers,
|
||||
EXT_draw_buffers2,
|
||||
EXT_draw_instanced,
|
||||
EXT_draw_range_elements,
|
||||
EXT_frag_depth,
|
||||
@ -2788,6 +2791,12 @@ public:
|
||||
AFTER_GL_CALL;
|
||||
}
|
||||
|
||||
void fGetInteger64i_v(GLenum target, GLuint index, GLint64* data) {
|
||||
ASSERT_SYMBOL_PRESENT(fGetInteger64i_v);
|
||||
BEFORE_GL_CALL;
|
||||
mSymbols.fGetInteger64i_v(target, index, data);
|
||||
AFTER_GL_CALL;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Package XXX_vertex_array_object
|
||||
|
@ -219,6 +219,25 @@ static const FeatureInfo sFeatureInfoArr[] = {
|
||||
GLContext::Extensions_End
|
||||
}
|
||||
},
|
||||
{
|
||||
"get_integer_indexed",
|
||||
300, // OpenGL version
|
||||
300, // OpenGL ES version
|
||||
GLContext::Extension_None,
|
||||
{
|
||||
GLContext::EXT_draw_buffers2,
|
||||
GLContext::Extensions_End
|
||||
}
|
||||
},
|
||||
{
|
||||
"get_integer64_indexed",
|
||||
320, // OpenGL version
|
||||
300, // OpenGL ES version
|
||||
GLContext::Extension_None,
|
||||
{
|
||||
GLContext::Extensions_End
|
||||
}
|
||||
},
|
||||
{
|
||||
"get_query_object_iv",
|
||||
200, // OpenGL version
|
||||
|
@ -503,6 +503,8 @@ struct GLContextSymbols
|
||||
|
||||
typedef void (GLAPIENTRY * PFNGLGETINTEGERI_V) (GLenum param, GLuint index, GLint* values);
|
||||
PFNGLGETINTEGERI_V fGetIntegeri_v;
|
||||
typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64* data);
|
||||
PFNGLGETINTEGER64I_VPROC fGetInteger64i_v;
|
||||
|
||||
// EXT_transform_feedback only
|
||||
typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSET) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
|
||||
|
Loading…
Reference in New Issue
Block a user