mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
mesa: add EXT_dsa glMultiTexImage1D/2D/3DEXT + glGetMultiTexImageEXT
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
885dbe2e84
commit
aac6578732
8 changed files with 351 additions and 5 deletions
|
|
@ -411,6 +411,54 @@
|
|||
<param name="param" type="const GLfloat*" />
|
||||
</function>
|
||||
|
||||
<function name="GetMultiTexImageEXT">
|
||||
<param name="texunit" type="GLenum" />
|
||||
<param name="target" type="GLenum" />
|
||||
<param name="level" type="GLint" />
|
||||
<param name="format" type="GLenum" />
|
||||
<param name="type" type="GLenum" />
|
||||
<param name="pixels" type="GLvoid*" />
|
||||
</function>
|
||||
|
||||
<function name="MultiTexImage1DEXT">
|
||||
<param name="texunit" type="GLenum" />
|
||||
<param name="target" type="GLenum" />
|
||||
<param name="level" type="GLint" />
|
||||
<param name="internalformat" type="GLint" />
|
||||
<param name="width" type="GLsizei" />
|
||||
<param name="border" type="GLint" />
|
||||
<param name="format" type="GLenum" />
|
||||
<param name="type" type="GLenum" />
|
||||
<param name="pixels" type="const GLvoid*" />
|
||||
</function>
|
||||
|
||||
<function name="MultiTexImage2DEXT">
|
||||
<param name="texunit" type="GLenum" />
|
||||
<param name="target" type="GLenum" />
|
||||
<param name="level" type="GLint" />
|
||||
<param name="internalformat" type="GLint" />
|
||||
<param name="width" type="GLsizei" />
|
||||
<param name="height" type="GLsizei" />
|
||||
<param name="border" type="GLint" />
|
||||
<param name="format" type="GLenum" />
|
||||
<param name="type" type="GLenum" />
|
||||
<param name="pixels" type="const GLvoid*" />
|
||||
</function>
|
||||
|
||||
<function name="MultiTexImage3DEXT">
|
||||
<param name="texunit" type="GLenum" />
|
||||
<param name="target" type="GLenum" />
|
||||
<param name="level" type="GLint" />
|
||||
<param name="internalformat" type="GLint" />
|
||||
<param name="width" type="GLsizei" />
|
||||
<param name="height" type="GLsizei" />
|
||||
<param name="depth" type="GLsizei" />
|
||||
<param name="border" type="GLint" />
|
||||
<param name="format" type="GLenum" />
|
||||
<param name="type" type="GLenum" />
|
||||
<param name="pixels" type="const GLvoid*" />
|
||||
</function>
|
||||
|
||||
<!-- OpenGL 1.3 -->
|
||||
|
||||
<function name="MatrixLoadTransposefEXT" offset="assign">
|
||||
|
|
|
|||
|
|
@ -1527,6 +1527,10 @@ offsets = {
|
|||
"MultiTexParameterivEXT": 1491,
|
||||
"MultiTexParameterfEXT": 1492,
|
||||
"MultiTexParameterfvEXT": 1493,
|
||||
"GetMultiTexImageEXT": 1494,
|
||||
"MultiTexImage1DEXT": 1495,
|
||||
"MultiTexImage2DEXT": 1496,
|
||||
"MultiTexImage3DEXT": 1497,
|
||||
}
|
||||
|
||||
functions = [
|
||||
|
|
|
|||
|
|
@ -584,6 +584,9 @@ typedef enum
|
|||
OPCODE_BIND_MULTITEXTURE,
|
||||
OPCODE_MULTITEXPARAMETER_F,
|
||||
OPCODE_MULTITEXPARAMETER_I,
|
||||
OPCODE_MULTITEX_IMAGE1D,
|
||||
OPCODE_MULTITEX_IMAGE2D,
|
||||
OPCODE_MULTITEX_IMAGE3D,
|
||||
OPCODE_MULTITEXENV,
|
||||
OPCODE_COMPRESSED_TEXTURE_SUB_IMAGE_2D,
|
||||
|
||||
|
|
@ -1221,12 +1224,15 @@ _mesa_delete_list(struct gl_context *ctx, struct gl_display_list *dlist)
|
|||
free(get_pointer(&n[3]));
|
||||
break;
|
||||
case OPCODE_TEXTURE_IMAGE1D:
|
||||
case OPCODE_MULTITEX_IMAGE1D:
|
||||
free(get_pointer(&n[9]));
|
||||
break;
|
||||
case OPCODE_TEXTURE_IMAGE2D:
|
||||
case OPCODE_MULTITEX_IMAGE2D:
|
||||
free(get_pointer(&n[10]));
|
||||
break;
|
||||
case OPCODE_TEXTURE_IMAGE3D:
|
||||
case OPCODE_MULTITEX_IMAGE3D:
|
||||
free(get_pointer(&n[11]));
|
||||
break;
|
||||
case OPCODE_TEXTURE_SUB_IMAGE1D:
|
||||
|
|
@ -9578,7 +9584,7 @@ save_TextureImage1DEXT(GLuint texture, GLenum target,
|
|||
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
|
||||
n = alloc_instruction(ctx, OPCODE_TEXTURE_IMAGE1D, 8 + POINTER_DWORDS);
|
||||
if (n) {
|
||||
n[1].e = texture;
|
||||
n[1].ui = texture;
|
||||
n[2].e = target;
|
||||
n[3].i = level;
|
||||
n[4].i = components;
|
||||
|
|
@ -9992,6 +9998,124 @@ save_MultiTexParameteriEXT(GLenum texunit, GLenum target, GLenum pname, GLint pa
|
|||
}
|
||||
|
||||
|
||||
static void GLAPIENTRY
|
||||
save_MultiTexImage1DEXT(GLenum texunit, GLenum target,
|
||||
GLint level, GLint components,
|
||||
GLsizei width, GLint border,
|
||||
GLenum format, GLenum type, const GLvoid * pixels)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
if (target == GL_PROXY_TEXTURE_1D) {
|
||||
/* don't compile, execute immediately */
|
||||
CALL_MultiTexImage1DEXT(ctx->Exec, (texunit, target, level, components, width,
|
||||
border, format, type, pixels));
|
||||
}
|
||||
else {
|
||||
Node *n;
|
||||
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
|
||||
n = alloc_instruction(ctx, OPCODE_MULTITEX_IMAGE1D, 8 + POINTER_DWORDS);
|
||||
if (n) {
|
||||
n[1].e = texunit;
|
||||
n[2].e = target;
|
||||
n[3].i = level;
|
||||
n[4].i = components;
|
||||
n[5].i = (GLint) width;
|
||||
n[6].i = border;
|
||||
n[7].e = format;
|
||||
n[8].e = type;
|
||||
save_pointer(&n[9],
|
||||
unpack_image(ctx, 1, width, 1, 1, format, type,
|
||||
pixels, &ctx->Unpack));
|
||||
}
|
||||
if (ctx->ExecuteFlag) {
|
||||
CALL_MultiTexImage1DEXT(ctx->Exec, (texunit, target, level, components, width,
|
||||
border, format, type, pixels));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void GLAPIENTRY
|
||||
save_MultiTexImage2DEXT(GLenum texunit, GLenum target,
|
||||
GLint level, GLint components,
|
||||
GLsizei width, GLsizei height, GLint border,
|
||||
GLenum format, GLenum type, const GLvoid * pixels)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
if (target == GL_PROXY_TEXTURE_2D) {
|
||||
/* don't compile, execute immediately */
|
||||
CALL_MultiTexImage2DEXT(ctx->Exec, (texunit, target, level, components, width,
|
||||
height, border, format, type, pixels));
|
||||
}
|
||||
else {
|
||||
Node *n;
|
||||
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
|
||||
n = alloc_instruction(ctx, OPCODE_MULTITEX_IMAGE2D, 9 + POINTER_DWORDS);
|
||||
if (n) {
|
||||
n[1].e = texunit;
|
||||
n[2].e = target;
|
||||
n[3].i = level;
|
||||
n[4].i = components;
|
||||
n[5].i = (GLint) width;
|
||||
n[6].i = (GLint) height;
|
||||
n[7].i = border;
|
||||
n[8].e = format;
|
||||
n[9].e = type;
|
||||
save_pointer(&n[10],
|
||||
unpack_image(ctx, 2, width, height, 1, format, type,
|
||||
pixels, &ctx->Unpack));
|
||||
}
|
||||
if (ctx->ExecuteFlag) {
|
||||
CALL_MultiTexImage2DEXT(ctx->Exec, (texunit, target, level, components, width,
|
||||
height, border, format, type, pixels));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void GLAPIENTRY
|
||||
save_MultiTexImage3DEXT(GLenum texunit, GLenum target,
|
||||
GLint level, GLint internalFormat,
|
||||
GLsizei width, GLsizei height, GLsizei depth,
|
||||
GLint border,
|
||||
GLenum format, GLenum type, const GLvoid * pixels)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
if (target == GL_PROXY_TEXTURE_3D) {
|
||||
/* don't compile, execute immediately */
|
||||
CALL_MultiTexImage3DEXT(ctx->Exec, (texunit, target, level, internalFormat, width,
|
||||
height, depth, border, format, type,
|
||||
pixels));
|
||||
}
|
||||
else {
|
||||
Node *n;
|
||||
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
|
||||
n = alloc_instruction(ctx, OPCODE_MULTITEX_IMAGE3D, 10 + POINTER_DWORDS);
|
||||
if (n) {
|
||||
n[1].e = texunit;
|
||||
n[2].e = target;
|
||||
n[3].i = level;
|
||||
n[4].i = (GLint) internalFormat;
|
||||
n[5].i = (GLint) width;
|
||||
n[6].i = (GLint) height;
|
||||
n[7].i = (GLint) depth;
|
||||
n[8].i = border;
|
||||
n[9].e = format;
|
||||
n[10].e = type;
|
||||
save_pointer(&n[11],
|
||||
unpack_image(ctx, 3, width, height, depth, format, type,
|
||||
pixels, &ctx->Unpack));
|
||||
}
|
||||
if (ctx->ExecuteFlag) {
|
||||
CALL_MultiTexImage3DEXT(ctx->Exec, (texunit, target, level, internalFormat,
|
||||
width, height, depth, border, format,
|
||||
type, pixels));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void GLAPIENTRY
|
||||
save_MultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params)
|
||||
{
|
||||
|
|
@ -11809,6 +11933,57 @@ execute_list(struct gl_context *ctx, GLuint list)
|
|||
CALL_MultiTexParameterivEXT(ctx->Exec, (n[1].e, n[2].e, n[3].e, params));
|
||||
}
|
||||
break;
|
||||
case OPCODE_MULTITEX_IMAGE1D:
|
||||
{
|
||||
const struct gl_pixelstore_attrib save = ctx->Unpack;
|
||||
ctx->Unpack = ctx->DefaultPacking;
|
||||
CALL_MultiTexImage1DEXT(ctx->Exec, (n[1].e, /* texture */
|
||||
n[2].e, /* target */
|
||||
n[3].i, /* level */
|
||||
n[4].i, /* components */
|
||||
n[5].i, /* width */
|
||||
n[6].e, /* border */
|
||||
n[7].e, /* format */
|
||||
n[8].e, /* type */
|
||||
get_pointer(&n[9])));
|
||||
ctx->Unpack = save; /* restore */
|
||||
}
|
||||
break;
|
||||
case OPCODE_MULTITEX_IMAGE2D:
|
||||
{
|
||||
const struct gl_pixelstore_attrib save = ctx->Unpack;
|
||||
ctx->Unpack = ctx->DefaultPacking;
|
||||
CALL_MultiTexImage2DEXT(ctx->Exec, (n[1].e, /* texture */
|
||||
n[2].e, /* target */
|
||||
n[3].i, /* level */
|
||||
n[4].i, /* components */
|
||||
n[5].i, /* width */
|
||||
n[6].i, /* height */
|
||||
n[7].e, /* border */
|
||||
n[8].e, /* format */
|
||||
n[9].e, /* type */
|
||||
get_pointer(&n[10])));
|
||||
ctx->Unpack = save; /* restore */
|
||||
}
|
||||
break;
|
||||
case OPCODE_MULTITEX_IMAGE3D:
|
||||
{
|
||||
const struct gl_pixelstore_attrib save = ctx->Unpack;
|
||||
ctx->Unpack = ctx->DefaultPacking;
|
||||
CALL_MultiTexImage3DEXT(ctx->Exec, (n[1].e, /* texture */
|
||||
n[2].e, /* target */
|
||||
n[3].i, /* level */
|
||||
n[4].i, /* components */
|
||||
n[5].i, /* width */
|
||||
n[6].i, /* height */
|
||||
n[7].i, /* depth */
|
||||
n[8].e, /* border */
|
||||
n[9].e, /* format */
|
||||
n[10].e, /* type */
|
||||
get_pointer(&n[11])));
|
||||
ctx->Unpack = save; /* restore */
|
||||
}
|
||||
break;
|
||||
case OPCODE_MULTITEXENV:
|
||||
{
|
||||
GLfloat params[4];
|
||||
|
|
@ -12837,6 +13012,9 @@ _mesa_initialize_save_table(const struct gl_context *ctx)
|
|||
SET_MultiTexParameterivEXT(table, save_MultiTexParameterivEXT);
|
||||
SET_MultiTexParameterfEXT(table, save_MultiTexParameterfEXT);
|
||||
SET_MultiTexParameterfvEXT(table, save_MultiTexParameterfvEXT);
|
||||
SET_MultiTexImage1DEXT(table, save_MultiTexImage1DEXT);
|
||||
SET_MultiTexImage2DEXT(table, save_MultiTexImage2DEXT);
|
||||
SET_MultiTexImage3DEXT(table, save_MultiTexImage3DEXT);
|
||||
SET_MultiTexEnvfEXT(table, save_MultiTexEnvfEXT);
|
||||
SET_MultiTexEnvfvEXT(table, save_MultiTexEnvfvEXT);
|
||||
SET_MultiTexEnviEXT(table, save_MultiTexEnviEXT);
|
||||
|
|
|
|||
|
|
@ -1076,20 +1076,20 @@ const struct function common_desktop_functions_possible[] = {
|
|||
{ "glMultiTexParameterfvEXT", 12, -1 },
|
||||
{ "glMultiTexParameteriEXT", 12, -1 },
|
||||
{ "glMultiTexParameterivEXT", 12, -1 },
|
||||
//{ "glMultiTexImage1DEXT", 12, -1 },
|
||||
//{ "glMultiTexImage2DEXT", 12, -1 },
|
||||
{ "glMultiTexImage1DEXT", 12, -1 },
|
||||
{ "glMultiTexImage2DEXT", 12, -1 },
|
||||
//{ "glMultiTexSubImage1DEXT", 12, -1 },
|
||||
//{ "glMultiTexSubImage2DEXT", 12, -1 },
|
||||
//{ "glCopyMultiTexImage1DEXT", 12, -1 },
|
||||
//{ "glCopyMultiTexImage2DEXT", 12, -1 },
|
||||
//{ "glCopyMultiTexSubImage1DEXT", 12, -1 },
|
||||
//{ "glCopyMultiTexSubImage2DEXT", 12, -1 },
|
||||
//{ "glGetMultiTexImageEXT", 12, -1 },
|
||||
{ "glGetMultiTexImageEXT", 12, -1 },
|
||||
//{ "glGetMultiTexParameterfvEXT", 12, -1 },
|
||||
//{ "glGetMultiTexParameterivEXT", 12, -1 },
|
||||
//{ "glGetMultiTexLevelParameterfvEXT", 12, -1 },
|
||||
//{ "glGetMultiTexLevelParameterivEXT", 12, -1 },
|
||||
//{ "glMultiTexImage3DEXT", 12, -1 },
|
||||
{ "glMultiTexImage3DEXT", 12, -1 },
|
||||
//{ "glMultiTexSubImage3DEXT", 12, -1 },
|
||||
//{ "glCopyMultiTexSubImage3DEXT", 12, -1 },
|
||||
{ "glEnableClientStateIndexedEXT", 12, -1 },
|
||||
|
|
|
|||
|
|
@ -1559,6 +1559,44 @@ _mesa_GetTextureImageEXT(GLuint texture, GLenum target, GLint level,
|
|||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level,
|
||||
GLenum format, GLenum type, GLvoid *pixels)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
GLsizei width, height, depth;
|
||||
static const char *caller = "glGetMultiTexImageEXT";
|
||||
|
||||
struct gl_texture_object *texObj =
|
||||
_mesa_get_texobj_by_target_and_texunit(ctx, target,
|
||||
texunit - GL_TEXTURE0,
|
||||
false,
|
||||
caller);
|
||||
|
||||
if (!texObj) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!legal_getteximage_target(ctx, texObj->Target, true)) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION, "%s", caller);
|
||||
return;
|
||||
}
|
||||
|
||||
get_texture_image_dims(texObj, texObj->Target, level,
|
||||
&width, &height, &depth);
|
||||
|
||||
if (getteximage_error_check(ctx, texObj, texObj->Target, level,
|
||||
width, height, depth,
|
||||
format, type, INT_MAX, pixels, caller)) {
|
||||
return;
|
||||
}
|
||||
|
||||
get_texture_image(ctx, texObj, texObj->Target, level,
|
||||
0, 0, 0, width, height, depth,
|
||||
format, type, pixels, caller);
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetTextureSubImage(GLuint texture, GLint level,
|
||||
GLint xoffset, GLint yoffset, GLint zoffset,
|
||||
|
|
|
|||
|
|
@ -65,6 +65,10 @@ extern void GLAPIENTRY
|
|||
_mesa_GetTextureImageEXT( GLuint texture, GLenum target, GLint level,
|
||||
GLenum format, GLenum type, GLvoid *pixels);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_GetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level,
|
||||
GLenum format, GLenum type, GLvoid *pixels);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_GetTextureSubImage(GLuint texture, GLint level,
|
||||
GLint xoffset, GLint yoffset, GLint zoffset,
|
||||
|
|
|
|||
|
|
@ -3210,6 +3210,24 @@ _mesa_TextureImage1DEXT(GLuint texture, GLenum target, GLint level,
|
|||
width, 1, 1, border, format, type, 0, pixels, false);
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_MultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level,
|
||||
GLint internalFormat, GLsizei width, GLint border,
|
||||
GLenum format, GLenum type, const GLvoid *pixels )
|
||||
{
|
||||
struct gl_texture_object* texObj;
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
texObj = _mesa_get_texobj_by_target_and_texunit(ctx, target,
|
||||
texunit - GL_TEXTURE0,
|
||||
true,
|
||||
"glMultiTexImage1DEXT");
|
||||
if (!texObj)
|
||||
return;
|
||||
teximage(ctx, GL_FALSE, 1, texObj, target, level, internalFormat, width, 1, 1,
|
||||
border, format, type, 0, pixels, false);
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,
|
||||
GLsizei width, GLsizei height, GLint border,
|
||||
|
|
@ -3238,6 +3256,25 @@ _mesa_TextureImage2DEXT(GLuint texture, GLenum target, GLint level,
|
|||
width, height, 1, border, format, type, 0, pixels, false);
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_MultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level,
|
||||
GLint internalFormat, GLsizei width, GLsizei height,
|
||||
GLint border,
|
||||
GLenum format, GLenum type, const GLvoid *pixels )
|
||||
{
|
||||
struct gl_texture_object* texObj;
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
texObj = _mesa_get_texobj_by_target_and_texunit(ctx, target,
|
||||
texunit - GL_TEXTURE0,
|
||||
true,
|
||||
"glMultiTexImage2DEXT");
|
||||
if (!texObj)
|
||||
return;
|
||||
teximage(ctx, GL_FALSE, 2, texObj, target, level, internalFormat, width, height, 1,
|
||||
border, format, type, 0, pixels, false);
|
||||
}
|
||||
|
||||
/*
|
||||
* Called by the API or display list executor.
|
||||
* Note that width and height include the border.
|
||||
|
|
@ -3271,6 +3308,26 @@ _mesa_TextureImage3DEXT(GLuint texture, GLenum target, GLint level,
|
|||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_MultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level,
|
||||
GLint internalFormat, GLsizei width, GLsizei height,
|
||||
GLsizei depth, GLint border, GLenum format, GLenum type,
|
||||
const GLvoid *pixels )
|
||||
{
|
||||
struct gl_texture_object* texObj;
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
texObj = _mesa_get_texobj_by_target_and_texunit(ctx, target,
|
||||
texunit - GL_TEXTURE0,
|
||||
true,
|
||||
"glMultiTexImage3DEXT");
|
||||
if (!texObj)
|
||||
return;
|
||||
teximage(ctx, GL_FALSE, 3, texObj, target, level, internalFormat,
|
||||
width, height, depth, border, format, type, 0, pixels, false);
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalFormat,
|
||||
GLsizei width, GLsizei height, GLsizei depth,
|
||||
|
|
|
|||
|
|
@ -266,6 +266,11 @@ _mesa_TextureImage1DEXT( GLuint texture, GLenum target, GLint level,
|
|||
GLint internalformat, GLsizei width, GLint border,
|
||||
GLenum format, GLenum type, const GLvoid *pixels );
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_MultiTexImage1DEXT( GLenum texture, GLenum target, GLint level,
|
||||
GLint internalformat, GLsizei width, GLint border,
|
||||
GLenum format, GLenum type, const GLvoid *pixels );
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_TexImage2D( GLenum target, GLint level, GLint internalformat,
|
||||
GLsizei width, GLsizei height, GLint border,
|
||||
|
|
@ -277,6 +282,12 @@ _mesa_TextureImage2DEXT( GLuint texture, GLenum target, GLint level,
|
|||
GLint border, GLenum format, GLenum type,
|
||||
const GLvoid *pixels );
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_MultiTexImage2DEXT(GLenum texture, GLenum target, GLint level,
|
||||
GLint internalFormat, GLsizei width, GLsizei height,
|
||||
GLint border, GLenum format, GLenum type,
|
||||
const GLvoid *pixels );
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_TexImage3D( GLenum target, GLint level, GLint internalformat,
|
||||
GLsizei width, GLsizei height, GLsizei depth, GLint border,
|
||||
|
|
@ -294,6 +305,12 @@ _mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalformat,
|
|||
GLint border, GLenum format, GLenum type,
|
||||
const GLvoid *pixels );
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_MultiTexImage3DEXT(GLenum texture, GLenum target, GLint level,
|
||||
GLint internalFormat, GLsizei width, GLsizei height,
|
||||
GLsizei depth, GLint border, GLenum format, GLenum type,
|
||||
const GLvoid *pixels );
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_TexImage1D_no_error(GLenum target, GLint level, GLint internalformat,
|
||||
GLsizei width, GLint border,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue