mirror of
https://github.com/reactos/reactos.git
synced 2024-07-31 00:28:56 +00:00
adding mesa3d 7.0.2 update with our local patch
----------------------------------------------- update was done once again by Kamil Hornicek tykef at atlas dot cz (irc nick : Pigglesworth) svn path=/trunk/; revision=30791
This commit is contained in:
parent
f63f322ecb
commit
10d34eed76
|
@ -179,7 +179,8 @@ $(TOP)/$(LIB_DIR):
|
|||
mkdir $(TOP)/$(LIB_DIR)
|
||||
|
||||
$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): $(OBJECTS) $(MESA_MODULES) $(GLU_MODULES)
|
||||
@$(TOP)/bin/mklib -o $(GL_LIB) -install $(TOP)/$(LIB_DIR) -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
|
||||
@$(TOP)/bin/mklib -o $(GL_LIB) -ldflags '$(LDFLAGS)' -install $(TOP)/$(LIB_DIR) \
|
||||
-major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
|
||||
$(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(OBJECTS) $(MESA_MODULES) $(GLU_MODULES)
|
||||
|
||||
# $(GLU_OBJECTS):
|
||||
|
|
|
@ -74,7 +74,7 @@ default: depend symlinks $(LIBNAME) $(TOP)/$(LIB_DIR)/$(LIBNAME)
|
|||
|
||||
|
||||
$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
|
||||
$(TOP)/bin/mklib -noprefix -o $@ \
|
||||
$(TOP)/bin/mklib -ldflags '$(LDFLAGS)' -noprefix -o $@ \
|
||||
$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
|
||||
|
||||
|
||||
|
@ -100,8 +100,8 @@ clean:
|
|||
|
||||
|
||||
install: $(LIBNAME)
|
||||
$(INSTALL) -d $(DRI_DRIVER_INSTALL_DIR)
|
||||
$(INSTALL) -m 755 $(LIBNAME) $(DRI_DRIVER_INSTALL_DIR)
|
||||
$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
|
||||
$(INSTALL) -m 755 $(LIBNAME) $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
|
||||
|
||||
|
||||
include depend
|
||||
|
|
|
@ -115,7 +115,7 @@ driFenceType(DriFenceObject * fence)
|
|||
unsigned ret;
|
||||
|
||||
_glthread_LOCK_MUTEX(bmMutex);
|
||||
ret = fence->fence.flags;
|
||||
ret = fence->fence.type;
|
||||
_glthread_UNLOCK_MUTEX(bmMutex);
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -1098,10 +1098,11 @@ static const char IsRenderbufferEXT_names[] =
|
|||
"";
|
||||
#endif
|
||||
|
||||
#if defined(need_GL_VERSION_2_0)
|
||||
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ATI_separate_stencil)
|
||||
static const char StencilOpSeparate_names[] =
|
||||
"iiii\0" /* Parameter signature */
|
||||
"glStencilOpSeparate\0"
|
||||
"glStencilOpSeparateATI\0"
|
||||
"";
|
||||
#endif
|
||||
|
||||
|
@ -4172,6 +4173,13 @@ static const char ActiveStencilFaceEXT_names[] =
|
|||
"";
|
||||
#endif
|
||||
|
||||
#if defined(need_GL_ATI_separate_stencil)
|
||||
static const char StencilFuncSeparateATI_names[] =
|
||||
"iiii\0" /* Parameter signature */
|
||||
"glStencilFuncSeparateATI\0"
|
||||
"";
|
||||
#endif
|
||||
|
||||
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
|
||||
static const char GetShaderSourceARB_names[] =
|
||||
"iipp\0" /* Parameter signature */
|
||||
|
@ -5175,6 +5183,14 @@ static const struct dri_extension_function GL_ATI_fragment_shader_functions[] =
|
|||
};
|
||||
#endif
|
||||
|
||||
#if defined(need_GL_ATI_separate_stencil)
|
||||
static const struct dri_extension_function GL_ATI_separate_stencil_functions[] = {
|
||||
{ StencilOpSeparate_names, StencilOpSeparate_remap_index, -1 },
|
||||
{ StencilFuncSeparateATI_names, StencilFuncSeparateATI_remap_index, -1 },
|
||||
{ NULL, 0, 0 }
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(need_GL_EXT_blend_color)
|
||||
static const struct dri_extension_function GL_EXT_blend_color_functions[] = {
|
||||
{ BlendColor_names, -1, 336 },
|
||||
|
|
|
@ -114,7 +114,7 @@
|
|||
do { \
|
||||
GLuint p = *(volatile GLuint *) GET_PTR(_x, _y); \
|
||||
__asm__ __volatile__( "bswap %0; rorl $8, %0" \
|
||||
: "=r" (p) : "r" (p) ); \
|
||||
: "=r" (p) : "0" (p) ); \
|
||||
((GLuint *)rgba)[0] = p; \
|
||||
} while (0)
|
||||
# elif defined( MESA_BIG_ENDIAN )
|
||||
|
|
|
@ -61,7 +61,8 @@ default: depend $(TOP)/$(LIB_DIR)/$(LIBNAME)
|
|||
|
||||
|
||||
$(TOP)/$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
|
||||
CC="$(CC)" CXX="$(CXX)" $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(TOP)/$(LIB_DIR) \
|
||||
CC="$(CC)" CXX="$(CXX)" $(TOP)/bin/mklib -o $(LIBNAME) -noprefix \
|
||||
-ldflags '$(LDFLAGS)' -install $(TOP)/$(LIB_DIR) \
|
||||
$(OBJECTS) $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES)
|
||||
|
||||
|
||||
|
|
|
@ -288,8 +288,8 @@ i810InitDriver(__DRIscreenPrivate *sPriv)
|
|||
i810Screen->depth.handle,
|
||||
i810Screen->depth.size,
|
||||
(drmAddress *)&i810Screen->depth.map) != 0) {
|
||||
FREE(i810Screen);
|
||||
drmUnmap(i810Screen->back.map, i810Screen->back.size);
|
||||
FREE(i810Screen);
|
||||
sPriv->private = NULL;
|
||||
__driUtilMessage("i810InitDriver: drmMap (2) failed");
|
||||
return GL_FALSE;
|
||||
|
|
|
@ -491,12 +491,19 @@ static void i915SetTexImages( i915ContextPtr i915,
|
|||
abort();
|
||||
}
|
||||
|
||||
|
||||
if (i915->intel.intelScreen->deviceID == PCI_CHIP_I945_G ||
|
||||
i915->intel.intelScreen->deviceID == PCI_CHIP_I945_GM)
|
||||
i945LayoutTextureImages( i915, tObj );
|
||||
else
|
||||
i915LayoutTextureImages( i915, tObj );
|
||||
switch (i915->intel.intelScreen->deviceID) {
|
||||
case PCI_CHIP_I945_G:
|
||||
case PCI_CHIP_I945_GM:
|
||||
case PCI_CHIP_I945_GME:
|
||||
case PCI_CHIP_G33_G:
|
||||
case PCI_CHIP_Q33_G:
|
||||
case PCI_CHIP_Q35_G:
|
||||
i945LayoutTextureImages( i915, tObj );
|
||||
break;
|
||||
default:
|
||||
i915LayoutTextureImages( i915, tObj );
|
||||
break;
|
||||
}
|
||||
|
||||
t->Setup[I915_TEXREG_MS3] =
|
||||
(((tObj->Image[0][t->intel.base.firstLevel]->Height - 1) << MS3_HEIGHT_SHIFT) |
|
||||
|
|
|
@ -123,6 +123,14 @@ const GLubyte *intelGetString( GLcontext *ctx, GLenum name )
|
|||
chipset = "Intel(R) 945G"; break;
|
||||
case PCI_CHIP_I945_GM:
|
||||
chipset = "Intel(R) 945GM"; break;
|
||||
case PCI_CHIP_I945_GME:
|
||||
chipset = "Intel(R) 945GME"; break;
|
||||
case PCI_CHIP_G33_G:
|
||||
chipset = "Intel(R) G33"; break;
|
||||
case PCI_CHIP_Q35_G:
|
||||
chipset = "Intel(R) Q35"; break;
|
||||
case PCI_CHIP_Q33_G:
|
||||
chipset = "Intel(R) Q33"; break;
|
||||
default:
|
||||
chipset = "Unknown Intel Chipset"; break;
|
||||
}
|
||||
|
|
|
@ -454,6 +454,10 @@ extern int INTEL_DEBUG;
|
|||
#define PCI_CHIP_I915_GM 0x2592
|
||||
#define PCI_CHIP_I945_G 0x2772
|
||||
#define PCI_CHIP_I945_GM 0x27A2
|
||||
#define PCI_CHIP_I945_GME 0x27AE
|
||||
#define PCI_CHIP_G33_G 0x29C2
|
||||
#define PCI_CHIP_Q35_G 0x29B2
|
||||
#define PCI_CHIP_Q33_G 0x29D2
|
||||
|
||||
|
||||
/* ================================================================
|
||||
|
|
|
@ -514,6 +514,10 @@ static GLboolean intelCreateContext( const __GLcontextModes *mesaVis,
|
|||
case PCI_CHIP_I915_GM:
|
||||
case PCI_CHIP_I945_G:
|
||||
case PCI_CHIP_I945_GM:
|
||||
case PCI_CHIP_I945_GME:
|
||||
case PCI_CHIP_G33_G:
|
||||
case PCI_CHIP_Q35_G:
|
||||
case PCI_CHIP_Q33_G:
|
||||
return i915CreateContext( mesaVis, driContextPriv,
|
||||
sharedContextPrivate );
|
||||
|
||||
|
|
|
@ -677,7 +677,11 @@ static void intelUploadTexImage( intelContextPtr intel,
|
|||
/* Time for another vtbl entry:
|
||||
*/
|
||||
else if (intel->intelScreen->deviceID == PCI_CHIP_I945_G ||
|
||||
intel->intelScreen->deviceID == PCI_CHIP_I945_GM) {
|
||||
intel->intelScreen->deviceID == PCI_CHIP_I945_GM ||
|
||||
intel->intelScreen->deviceID == PCI_CHIP_I945_GME ||
|
||||
intel->intelScreen->deviceID == PCI_CHIP_G33_G ||
|
||||
intel->intelScreen->deviceID == PCI_CHIP_Q33_G ||
|
||||
intel->intelScreen->deviceID == PCI_CHIP_Q35_G) {
|
||||
GLuint row_len = image->Width * image->TexFormat->TexelBytes;
|
||||
GLubyte *dst = (GLubyte *)(t->BufAddr + offset);
|
||||
GLubyte *src = (GLubyte *)image->Data;
|
||||
|
|
|
@ -519,6 +519,16 @@ i830_emit_state(struct intel_context *intel)
|
|||
static void
|
||||
i830_destroy_context(struct intel_context *intel)
|
||||
{
|
||||
GLuint i;
|
||||
struct i830_context *i830 = i830_context(&intel->ctx);
|
||||
|
||||
for (i = 0; i < I830_TEX_UNITS; i++) {
|
||||
if (i830->state.tex_buffer[i] != NULL) {
|
||||
driBOUnReference(i830->state.tex_buffer[i]);
|
||||
i830->state.tex_buffer[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
_tnl_free_vertices(&intel->ctx);
|
||||
}
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ meta_depth_replace(struct intel_context *intel)
|
|||
i915->meta.Ctx[I915_CTXREG_LIS6] |= (S6_DEPTH_TEST_ENABLE |
|
||||
S6_DEPTH_WRITE_ENABLE);
|
||||
|
||||
/* ctx->Driver.DepthFunc( ctx, GL_REPLACE )
|
||||
/* ctx->Driver.DepthFunc( ctx, GL_ALWAYS )
|
||||
*/
|
||||
i915->meta.Ctx[I915_CTXREG_LIS6] &= ~S6_DEPTH_TEST_FUNC_MASK;
|
||||
i915->meta.Ctx[I915_CTXREG_LIS6] |=
|
||||
|
|
|
@ -113,7 +113,7 @@ i915_miptree_layout(struct intel_mipmap_tree * mt)
|
|||
*/
|
||||
for (level = mt->first_level; level <= MAX2(8, mt->last_level);
|
||||
level++) {
|
||||
intel_miptree_set_level_info(mt, level, 1, 0, mt->total_height,
|
||||
intel_miptree_set_level_info(mt, level, depth, 0, mt->total_height,
|
||||
width, height, depth);
|
||||
|
||||
|
||||
|
|
|
@ -430,6 +430,16 @@ i915_emit_state(struct intel_context *intel)
|
|||
static void
|
||||
i915_destroy_context(struct intel_context *intel)
|
||||
{
|
||||
GLuint i;
|
||||
struct i915_context *i915 = i915_context(&intel->ctx);
|
||||
|
||||
for (i = 0; i < I915_TEX_UNITS; i++) {
|
||||
if (i915->state.tex_buffer[i] != NULL) {
|
||||
driBOUnReference(i915->state.tex_buffer[i]);
|
||||
i915->state.tex_buffer[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
_tnl_free_vertices(&intel->ctx);
|
||||
}
|
||||
|
||||
|
|
|
@ -409,6 +409,9 @@ intelClearWithBlit(GLcontext * ctx, GLbitfield mask)
|
|||
b = *box;
|
||||
}
|
||||
|
||||
if (b.x1 >= b.x2 || b.y1 >= b.y2)
|
||||
continue;
|
||||
|
||||
if (0)
|
||||
_mesa_printf("clear %d,%d..%d,%d, mask %x\n",
|
||||
b.x1, b.y1, b.x2, b.y2, mask);
|
||||
|
|
|
@ -1124,6 +1124,15 @@ intel_draw_buffer(GLcontext * ctx, struct gl_framebuffer *fb)
|
|||
ctx->Driver.Enable(ctx, GL_STENCIL_TEST, ctx->Stencil.Enabled);
|
||||
}
|
||||
|
||||
/*
|
||||
* Update depth test state
|
||||
*/
|
||||
if (ctx->Depth.Test && fb->Visual.depthBits > 0) {
|
||||
ctx->Driver.Enable(ctx, GL_DEPTH_TEST, GL_TRUE);
|
||||
}
|
||||
else {
|
||||
ctx->Driver.Enable(ctx, GL_DEPTH_TEST, GL_FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
** Release old regions, reference new regions
|
||||
|
|
|
@ -130,6 +130,18 @@ intelGetString(GLcontext * ctx, GLenum name)
|
|||
case PCI_CHIP_I945_GM:
|
||||
chipset = "Intel(R) 945GM";
|
||||
break;
|
||||
case PCI_CHIP_I945_GME:
|
||||
chipset = "Intel(R) 945GME";
|
||||
break;
|
||||
case PCI_CHIP_G33_G:
|
||||
chipset = "Intel(R) G33";
|
||||
break;
|
||||
case PCI_CHIP_Q35_G:
|
||||
chipset = "Intel(R) Q35";
|
||||
break;
|
||||
case PCI_CHIP_Q33_G:
|
||||
chipset = "Intel(R) Q33";
|
||||
break;
|
||||
default:
|
||||
chipset = "Unknown Intel Chipset";
|
||||
break;
|
||||
|
|
|
@ -385,6 +385,10 @@ extern int INTEL_DEBUG;
|
|||
#define PCI_CHIP_I915_GM 0x2592
|
||||
#define PCI_CHIP_I945_G 0x2772
|
||||
#define PCI_CHIP_I945_GM 0x27A2
|
||||
#define PCI_CHIP_I945_GME 0x27AE
|
||||
#define PCI_CHIP_G33_G 0x29C2
|
||||
#define PCI_CHIP_Q35_G 0x29B2
|
||||
#define PCI_CHIP_Q33_G 0x29D2
|
||||
|
||||
|
||||
/* ================================================================
|
||||
|
|
|
@ -79,6 +79,10 @@ intel_miptree_create(struct intel_context *intel,
|
|||
switch (intel->intelScreen->deviceID) {
|
||||
case PCI_CHIP_I945_G:
|
||||
case PCI_CHIP_I945_GM:
|
||||
case PCI_CHIP_I945_GME:
|
||||
case PCI_CHIP_G33_G:
|
||||
case PCI_CHIP_Q33_G:
|
||||
case PCI_CHIP_Q35_G:
|
||||
ok = i945_miptree_layout(mt);
|
||||
break;
|
||||
case PCI_CHIP_I915_G:
|
||||
|
@ -93,9 +97,28 @@ intel_miptree_create(struct intel_context *intel,
|
|||
break;
|
||||
}
|
||||
|
||||
if (ok)
|
||||
if (ok) {
|
||||
if (!mt->compressed) {
|
||||
/* XXX: Align pitch to multiple of 64 bytes for now to allow
|
||||
* render-to-texture to work in all cases. This should probably be
|
||||
* replaced at some point by some scheme to only do this when really
|
||||
* necessary.
|
||||
*/
|
||||
mt->pitch = (mt->pitch * cpp + 63) & ~63;
|
||||
|
||||
/* XXX: At least the i915 seems very upset when the pitch is a multiple
|
||||
* of 1024 and sometimes 512 bytes - performance can drop by several
|
||||
* times. Go to the next multiple of 64 for now.
|
||||
*/
|
||||
if (!(mt->pitch & 511))
|
||||
mt->pitch += 64;
|
||||
|
||||
mt->pitch /= cpp;
|
||||
}
|
||||
|
||||
mt->region = intel_region_alloc(intel->intelScreen,
|
||||
mt->cpp, mt->pitch, mt->total_height);
|
||||
}
|
||||
|
||||
if (!mt->region) {
|
||||
free(mt);
|
||||
|
|
|
@ -752,6 +752,10 @@ intelCreateContext(const __GLcontextModes * mesaVis,
|
|||
case PCI_CHIP_I915_GM:
|
||||
case PCI_CHIP_I945_G:
|
||||
case PCI_CHIP_I945_GM:
|
||||
case PCI_CHIP_I945_GME:
|
||||
case PCI_CHIP_G33_G:
|
||||
case PCI_CHIP_Q35_G:
|
||||
case PCI_CHIP_Q33_G:
|
||||
return i915CreateContext(mesaVis, driContextPriv, sharedContextPrivate);
|
||||
|
||||
default:
|
||||
|
|
|
@ -80,7 +80,7 @@ static void init_aubfile( FILE *aub_file )
|
|||
fh.hour = (nr>>16) & 0xff;
|
||||
fh.comment_length = 0x0;
|
||||
|
||||
if (fwrite(&fh, sizeof(fh), 1, aub_file) < 0)
|
||||
if (fwrite(&fh, sizeof(fh), 1, aub_file) < 1)
|
||||
FAIL;
|
||||
|
||||
/* Setup the GTT starting at main memory address zero (!):
|
||||
|
@ -96,12 +96,12 @@ static void init_aubfile( FILE *aub_file )
|
|||
bh.address = PGETBL_CTL;
|
||||
bh.length = 0x4;
|
||||
|
||||
if (fwrite(&bh, sizeof(bh), 1, aub_file) < 0)
|
||||
if (fwrite(&bh, sizeof(bh), 1, aub_file) < 1)
|
||||
FAIL;
|
||||
|
||||
data = 0x0 | PGETBL_ENABLED;
|
||||
|
||||
if (fwrite(&data, sizeof(data), 1, aub_file) < 0)
|
||||
if (fwrite(&data, sizeof(data), 1, aub_file) < 1)
|
||||
FAIL;
|
||||
}
|
||||
|
||||
|
@ -128,7 +128,7 @@ static void init_aub_gtt( struct brw_context *brw,
|
|||
bh.address = start_offset / 4096 * 4;
|
||||
bh.length = size / 4096 * 4;
|
||||
|
||||
if (fwrite(&bh, sizeof(bh), 1, aub_file) < 0)
|
||||
if (fwrite(&bh, sizeof(bh), 1, aub_file) < 1)
|
||||
FAIL;
|
||||
|
||||
for (i = 0; i < size / 4096; i++) {
|
||||
|
@ -136,7 +136,7 @@ static void init_aub_gtt( struct brw_context *brw,
|
|||
|
||||
brw->next_free_page += 4096;
|
||||
|
||||
if (fwrite(&data, sizeof(data), 1, aub_file) < 0)
|
||||
if (fwrite(&data, sizeof(data), 1, aub_file) < 1)
|
||||
FAIL;
|
||||
}
|
||||
|
||||
|
@ -149,10 +149,10 @@ static void write_block_header( FILE *aub_file,
|
|||
{
|
||||
sz = (sz + 3) & ~3;
|
||||
|
||||
if (fwrite(bh, sizeof(*bh), 1, aub_file) < 0)
|
||||
if (fwrite(bh, sizeof(*bh), 1, aub_file) < 1)
|
||||
FAIL;
|
||||
|
||||
if (fwrite(data, sz, 1, aub_file) < 0)
|
||||
if (fwrite(data, sz, 1, aub_file) < 1)
|
||||
FAIL;
|
||||
|
||||
fflush(aub_file);
|
||||
|
@ -162,7 +162,7 @@ static void write_block_header( FILE *aub_file,
|
|||
static void write_dump_bmp( FILE *aub_file,
|
||||
struct aub_dump_bmp *db )
|
||||
{
|
||||
if (fwrite(db, sizeof(*db), 1, aub_file) < 0)
|
||||
if (fwrite(db, sizeof(*db), 1, aub_file) < 1)
|
||||
FAIL;
|
||||
|
||||
fflush(aub_file);
|
||||
|
|
|
@ -212,6 +212,10 @@ static void upload_clip_prog( struct brw_context *brw )
|
|||
}
|
||||
}
|
||||
|
||||
if (brw->attribs.Polygon->BackMode != GL_FILL ||
|
||||
brw->attribs.Polygon->FrontMode != GL_FILL)
|
||||
key.do_unfilled = 1;
|
||||
|
||||
/* Most cases the fixed function units will handle. Cases where
|
||||
* one or more polygon faces are unfilled will require help:
|
||||
*/
|
||||
|
|
|
@ -90,7 +90,7 @@ static void calculate_curbe_offsets( struct brw_context *brw )
|
|||
*/
|
||||
if (nr_fp_regs > brw->curbe.wm_size ||
|
||||
nr_vp_regs > brw->curbe.vs_size ||
|
||||
nr_clip_regs > brw->curbe.clip_size ||
|
||||
nr_clip_regs != brw->curbe.clip_size ||
|
||||
(total_regs < brw->curbe.total_size / 4 &&
|
||||
brw->curbe.total_size > 16)) {
|
||||
|
||||
|
|
|
@ -330,6 +330,7 @@ static GLboolean brw_try_draw_prims( GLcontext *ctx,
|
|||
else {
|
||||
/* Otherwise, explicitly do the cliprects at this point:
|
||||
*/
|
||||
GLuint nprims = 0;
|
||||
for (j = 0; j < brw->intel.numClipRects; j++) {
|
||||
brw_emit_cliprect(brw, &brw->intel.pClipRects[j]);
|
||||
|
||||
|
@ -337,6 +338,11 @@ static GLboolean brw_try_draw_prims( GLcontext *ctx,
|
|||
*/
|
||||
for (i = 0; i < nr_prims; i++) {
|
||||
brw_emit_prim(brw, &prim[i]);
|
||||
|
||||
if (++nprims == VBO_MAX_PRIM) {
|
||||
intel_batchbuffer_flush(brw->intel.batch);
|
||||
nprims = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -582,7 +582,9 @@ void brw_emit_anyprim_setup( struct brw_sf_compile *c )
|
|||
(1<<_3DPRIM_TRIFAN_NOSTIPPLE)));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_w(0));
|
||||
{
|
||||
brw_push_insn_state(p);
|
||||
brw_emit_tri_setup( c );
|
||||
brw_pop_insn_state(p);
|
||||
/* note - thread killed in subroutine */
|
||||
}
|
||||
brw_land_fwd_jump(p, jmp);
|
||||
|
@ -596,7 +598,9 @@ void brw_emit_anyprim_setup( struct brw_sf_compile *c )
|
|||
(1<<_3DPRIM_LINESTRIP_CONT_BF)));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_w(0));
|
||||
{
|
||||
brw_push_insn_state(p);
|
||||
brw_emit_line_setup( c );
|
||||
brw_pop_insn_state(p);
|
||||
/* note - thread killed in subroutine */
|
||||
}
|
||||
brw_land_fwd_jump(p, jmp);
|
||||
|
|
|
@ -1000,13 +1000,19 @@ static void build_lighting( struct tnl_program *p )
|
|||
STATE_POSITION);
|
||||
struct ureg V = get_eye_position(p);
|
||||
struct ureg dist = get_temp(p);
|
||||
struct ureg tmpPpli = get_temp(p);
|
||||
|
||||
VPpli = get_temp(p);
|
||||
half = get_temp(p);
|
||||
|
||||
|
||||
/* In homogeneous object coordinates
|
||||
*/
|
||||
emit_op1(p, OPCODE_RCP, dist, 0, swizzle1(Ppli, W));
|
||||
emit_op2(p, OPCODE_MUL, tmpPpli, 0, Ppli, dist);
|
||||
|
||||
/* Calulate VPpli vector
|
||||
*/
|
||||
emit_op2(p, OPCODE_SUB, VPpli, 0, Ppli, V);
|
||||
emit_op2(p, OPCODE_SUB, VPpli, 0, tmpPpli, V);
|
||||
|
||||
/* Normalize VPpli. The dist value also used in
|
||||
* attenuation below.
|
||||
|
@ -1038,6 +1044,7 @@ static void build_lighting( struct tnl_program *p )
|
|||
emit_normalize_vec3(p, half, half);
|
||||
|
||||
release_temp(p, dist);
|
||||
release_temp(p, tmpPpli);
|
||||
}
|
||||
|
||||
/* Calculate dot products:
|
||||
|
|
|
@ -525,7 +525,57 @@ static void precalc_tex( struct brw_wm_compile *c,
|
|||
struct prog_src_register coord;
|
||||
struct prog_dst_register tmpcoord;
|
||||
|
||||
if (inst->TexSrcTarget == TEXTURE_RECT_INDEX) {
|
||||
if (inst->TexSrcTarget == TEXTURE_CUBE_INDEX) {
|
||||
struct prog_instruction *out;
|
||||
struct prog_dst_register tmp0 = get_temp(c);
|
||||
struct prog_src_register tmp0src = src_reg_from_dst(tmp0);
|
||||
struct prog_dst_register tmp1 = get_temp(c);
|
||||
struct prog_src_register tmp1src = src_reg_from_dst(tmp1);
|
||||
struct prog_src_register src0 = inst->SrcReg[0];
|
||||
|
||||
tmpcoord = get_temp(c);
|
||||
coord = src_reg_from_dst(tmpcoord);
|
||||
|
||||
out = emit_op(c, OPCODE_MOV,
|
||||
tmpcoord,
|
||||
0, 0, 0,
|
||||
src0,
|
||||
src_undef(),
|
||||
src_undef());
|
||||
out->SrcReg[0].NegateBase = 0;
|
||||
out->SrcReg[0].Abs = 1;
|
||||
|
||||
emit_op(c, OPCODE_MAX,
|
||||
tmp0,
|
||||
0, 0, 0,
|
||||
src_swizzle1(coord, X),
|
||||
src_swizzle1(coord, Y),
|
||||
src_undef());
|
||||
|
||||
emit_op(c, OPCODE_MAX,
|
||||
tmp1,
|
||||
0, 0, 0,
|
||||
tmp0src,
|
||||
src_swizzle1(coord, Z),
|
||||
src_undef());
|
||||
|
||||
emit_op(c, OPCODE_RCP,
|
||||
tmp0,
|
||||
0, 0, 0,
|
||||
tmp1src,
|
||||
src_undef(),
|
||||
src_undef());
|
||||
|
||||
emit_op(c, OPCODE_MUL,
|
||||
tmpcoord,
|
||||
0, 0, 0,
|
||||
src0,
|
||||
tmp0src,
|
||||
src_undef());
|
||||
|
||||
release_temp(c, tmp0);
|
||||
release_temp(c, tmp1);
|
||||
} else if (inst->TexSrcTarget == TEXTURE_RECT_INDEX) {
|
||||
struct prog_src_register scale =
|
||||
search_or_add_param5( c,
|
||||
STATE_INTERNAL,
|
||||
|
|
|
@ -173,12 +173,12 @@ static void brw_update_sampler_state( struct gl_texture_unit *texUnit,
|
|||
* message (sample_c). So need to recompile WM program when
|
||||
* shadow comparison is enabled on each/any texture unit.
|
||||
*/
|
||||
sampler->ss0.shadow_function = intel_translate_compare_func(texObj->CompareFunc);
|
||||
sampler->ss0.shadow_function = intel_translate_shadow_compare_func(texObj->CompareFunc);
|
||||
}
|
||||
|
||||
/* Set LOD bias:
|
||||
*/
|
||||
sampler->ss0.lod_bias = S_FIXED(texUnit->LodBias + texObj->LodBias, 6);
|
||||
sampler->ss0.lod_bias = S_FIXED(CLAMP(texUnit->LodBias + texObj->LodBias, -16, 15), 6);
|
||||
|
||||
sampler->ss0.lod_preclamp = 1; /* OpenGL mode */
|
||||
sampler->ss0.default_color_mode = 0; /* OpenGL/DX10 mode */
|
||||
|
@ -192,8 +192,8 @@ static void brw_update_sampler_state( struct gl_texture_unit *texUnit,
|
|||
*/
|
||||
sampler->ss0.base_level = U_FIXED(0, 1);
|
||||
|
||||
sampler->ss1.max_lod = U_FIXED(MAX2(texObj->MaxLod, 0), 6);
|
||||
sampler->ss1.min_lod = U_FIXED(MAX2(texObj->MinLod, 0), 6);
|
||||
sampler->ss1.max_lod = U_FIXED(MIN2(MAX2(texObj->MaxLod, 0), 13), 6);
|
||||
sampler->ss1.min_lod = U_FIXED(MIN2(MAX2(texObj->MinLod, 0), 13), 6);
|
||||
|
||||
sampler->ss2.default_color_pointer = sdc_gs_offset >> 5;
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ static void upload_wm_unit(struct brw_context *brw )
|
|||
wm.thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
|
||||
|
||||
/* CACHE_NEW_SAMPLER */
|
||||
wm.wm4.sampler_count = brw->wm.sampler_count;
|
||||
wm.wm4.sampler_count = (brw->wm.sampler_count + 1) / 4;
|
||||
wm.wm4.sampler_state_pointer = brw->wm.sampler_gs_offset >> 5;
|
||||
|
||||
/* BRW_NEW_FRAGMENT_PROGRAM */
|
||||
|
|
|
@ -31,7 +31,9 @@
|
|||
#include "intel_regions.h"
|
||||
#include "intel_batchbuffer.h"
|
||||
#include "context.h"
|
||||
#include "utils.h"
|
||||
#include "framebuffer.h"
|
||||
#include "vblank.h"
|
||||
#include "macros.h"
|
||||
#include "swrast/swrast.h"
|
||||
|
||||
|
@ -190,8 +192,40 @@ void intelWindowMoved( struct intel_context *intel )
|
|||
}
|
||||
}
|
||||
|
||||
{
|
||||
if (intel->intelScreen->driScrnPriv->ddxMinor >= 7) {
|
||||
volatile drmI830Sarea *sarea = intel->sarea;
|
||||
drm_clip_rect_t drw_rect = { .x1 = dPriv->x, .x2 = dPriv->x + dPriv->w,
|
||||
.y1 = dPriv->y, .y2 = dPriv->y + dPriv->h
|
||||
};
|
||||
drm_clip_rect_t pipeA_rect = { .x1 = sarea->pipeA_x,
|
||||
.x2 = sarea->pipeA_x + sarea->pipeA_w,
|
||||
.y1 = sarea->pipeA_y,
|
||||
.y2 = sarea->pipeA_y + sarea->pipeA_h };
|
||||
drm_clip_rect_t pipeB_rect = { .x1 = sarea->pipeB_x,
|
||||
.x2 = sarea->pipeB_x + sarea->pipeB_w,
|
||||
.y1 = sarea->pipeB_y,
|
||||
.y2 = sarea->pipeB_y + sarea->pipeB_h };
|
||||
GLint areaA = driIntersectArea( drw_rect, pipeA_rect );
|
||||
GLint areaB = driIntersectArea( drw_rect, pipeB_rect );
|
||||
GLuint flags = intel->vblank_flags;
|
||||
|
||||
if (areaB > areaA || (areaA > 0 && areaB > 0)) {
|
||||
flags = intel->vblank_flags | VBLANK_FLAG_SECONDARY;
|
||||
} else {
|
||||
flags = intel->vblank_flags & ~VBLANK_FLAG_SECONDARY;
|
||||
}
|
||||
|
||||
if (flags != intel->vblank_flags) {
|
||||
intel->vblank_flags = flags;
|
||||
driGetCurrentVBlank(dPriv, intel->vblank_flags, &intel->vbl_seq);
|
||||
}
|
||||
} else {
|
||||
intel->vblank_flags &= ~VBLANK_FLAG_SECONDARY;
|
||||
}
|
||||
}
|
||||
_mesa_resize_framebuffer(&intel->ctx,
|
||||
(GLframebuffer*)dPriv->driverPrivate,
|
||||
(GLframebuffer*)dPriv->driverPrivate,
|
||||
dPriv->w, dPriv->h);
|
||||
|
||||
/* Set state we know depends on drawable parameters:
|
||||
|
|
|
@ -262,7 +262,7 @@ intelBeginQuery(GLcontext *ctx, GLenum target, struct gl_query_object *q)
|
|||
};
|
||||
intel->stats_wm++;
|
||||
intelFinish(&intel->ctx);
|
||||
drmCommandRead(intel->driFd, DRM_I830_MMIO, &io, sizeof(io));
|
||||
drmCommandWrite(intel->driFd, DRM_I830_MMIO, &io, sizeof(io));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -276,7 +276,7 @@ intelEndQuery(GLcontext *ctx, GLenum target, struct gl_query_object *q)
|
|||
.data = &tmp
|
||||
};
|
||||
intelFinish(&intel->ctx);
|
||||
drmCommandRead(intel->driFd, DRM_I830_MMIO, &io, sizeof(io));
|
||||
drmCommandWrite(intel->driFd, DRM_I830_MMIO, &io, sizeof(io));
|
||||
q->Result = tmp - q->Result;
|
||||
q->Ready = GL_TRUE;
|
||||
intel->stats_wm--;
|
||||
|
@ -487,7 +487,7 @@ GLboolean intelInitContext( struct intel_context *intel,
|
|||
_mesa_enable_extension( ctx, "GL_EXT_texture_compression_s3tc" );
|
||||
_mesa_enable_extension( ctx, "GL_S3_s3tc" );
|
||||
}
|
||||
else if (driQueryOptionb (&intelScreen->optionCache, "force_s3tc_enable")) {
|
||||
else if (driQueryOptionb (&intel->optionCache, "force_s3tc_enable")) {
|
||||
_mesa_enable_extension( ctx, "GL_EXT_texture_compression_s3tc" );
|
||||
}
|
||||
|
||||
|
@ -567,6 +567,10 @@ GLboolean intelMakeCurrent(__DRIcontextPrivate *driContextPriv,
|
|||
if (driContextPriv) {
|
||||
struct intel_context *intel = (struct intel_context *) driContextPriv->driverPrivate;
|
||||
|
||||
if (intel->driReadDrawable != driReadPriv) {
|
||||
intel->driReadDrawable = driReadPriv;
|
||||
}
|
||||
|
||||
if ( intel->driDrawable != driDrawPriv ) {
|
||||
/* Shouldn't the readbuffer be stored also? */
|
||||
driDrawableInitVBlank( driDrawPriv, intel->vblank_flags,
|
||||
|
|
|
@ -234,6 +234,7 @@ struct intel_context
|
|||
int driFd;
|
||||
|
||||
__DRIdrawablePrivate *driDrawable;
|
||||
__DRIdrawablePrivate *driReadDrawable;
|
||||
__DRIscreenPrivate *driScreen;
|
||||
intelScreenPrivate *intelScreen;
|
||||
volatile drmI830Sarea *sarea;
|
||||
|
@ -463,7 +464,7 @@ extern void intelInitStateFuncs( struct dd_function_table *functions );
|
|||
#define BLENDFACT_INV_CONST_ALPHA 0x0f
|
||||
#define BLENDFACT_MASK 0x0f
|
||||
|
||||
|
||||
extern int intel_translate_shadow_compare_func( GLenum func );
|
||||
extern int intel_translate_compare_func( GLenum func );
|
||||
extern int intel_translate_stencil_op( GLenum op );
|
||||
extern int intel_translate_blend_factor( GLenum factor );
|
||||
|
|
|
@ -168,12 +168,15 @@ do_blit_bitmap( GLcontext *ctx,
|
|||
{
|
||||
struct intel_context *intel = intel_context(ctx);
|
||||
struct intel_region *dst = intel_drawbuf_region(intel);
|
||||
|
||||
GLfloat tmpColor[4];
|
||||
|
||||
union {
|
||||
GLuint ui;
|
||||
GLubyte ub[4];
|
||||
} color;
|
||||
|
||||
if (!dst)
|
||||
return GL_FALSE;
|
||||
|
||||
if (unpack->BufferObj->Name) {
|
||||
bitmap = map_pbo(ctx, width, height, unpack, bitmap);
|
||||
|
@ -181,10 +184,16 @@ do_blit_bitmap( GLcontext *ctx,
|
|||
return GL_TRUE; /* even though this is an error, we're done */
|
||||
}
|
||||
|
||||
UNCLAMPED_FLOAT_TO_CHAN(color.ub[0], ctx->Current.RasterColor[2]);
|
||||
UNCLAMPED_FLOAT_TO_CHAN(color.ub[1], ctx->Current.RasterColor[1]);
|
||||
UNCLAMPED_FLOAT_TO_CHAN(color.ub[2], ctx->Current.RasterColor[0]);
|
||||
UNCLAMPED_FLOAT_TO_CHAN(color.ub[3], ctx->Current.RasterColor[3]);
|
||||
COPY_4V(tmpColor, ctx->Current.RasterColor);
|
||||
|
||||
if (NEED_SECONDARY_COLOR(ctx)) {
|
||||
ADD_3V(tmpColor, tmpColor, ctx->Current.RasterSecondaryColor);
|
||||
}
|
||||
|
||||
UNCLAMPED_FLOAT_TO_CHAN(color.ub[0], tmpColor[2]);
|
||||
UNCLAMPED_FLOAT_TO_CHAN(color.ub[1], tmpColor[1]);
|
||||
UNCLAMPED_FLOAT_TO_CHAN(color.ub[2], tmpColor[0]);
|
||||
UNCLAMPED_FLOAT_TO_CHAN(color.ub[3], tmpColor[3]);
|
||||
|
||||
/* Does zoom apply to bitmaps?
|
||||
*/
|
||||
|
|
|
@ -231,6 +231,7 @@ do_blit_copypixels(GLcontext * ctx,
|
|||
|
||||
if (intel->driDrawable->numClipRects) {
|
||||
__DRIdrawablePrivate *dPriv = intel->driDrawable;
|
||||
__DRIdrawablePrivate *dReadPriv = intel->driReadDrawable;
|
||||
drm_clip_rect_t *box = dPriv->pClipRects;
|
||||
drm_clip_rect_t dest_rect;
|
||||
GLint nbox = dPriv->numClipRects;
|
||||
|
@ -262,8 +263,8 @@ do_blit_copypixels(GLcontext * ctx,
|
|||
srcy = dPriv->h - srcy - height;
|
||||
dstx += dPriv->x;
|
||||
dsty += dPriv->y;
|
||||
srcx += dPriv->x;
|
||||
srcy += dPriv->y;
|
||||
srcx += dReadPriv->x;
|
||||
srcy += dReadPriv->y;
|
||||
|
||||
/* Clip against the source region. This is the only source
|
||||
* clipping we do. Dst is clipped with cliprects below.
|
||||
|
|
|
@ -38,6 +38,31 @@
|
|||
#include "intel_regions.h"
|
||||
#include "swrast/swrast.h"
|
||||
|
||||
int intel_translate_shadow_compare_func( GLenum func )
|
||||
{
|
||||
switch(func) {
|
||||
case GL_NEVER:
|
||||
return COMPAREFUNC_ALWAYS;
|
||||
case GL_LESS:
|
||||
return COMPAREFUNC_LEQUAL;
|
||||
case GL_LEQUAL:
|
||||
return COMPAREFUNC_LESS;
|
||||
case GL_GREATER:
|
||||
return COMPAREFUNC_GEQUAL;
|
||||
case GL_GEQUAL:
|
||||
return COMPAREFUNC_GREATER;
|
||||
case GL_NOTEQUAL:
|
||||
return COMPAREFUNC_EQUAL;
|
||||
case GL_EQUAL:
|
||||
return COMPAREFUNC_NOTEQUAL;
|
||||
case GL_ALWAYS:
|
||||
return COMPAREFUNC_NEVER;
|
||||
}
|
||||
|
||||
fprintf(stderr, "Unknown value in %s: %x\n", __FUNCTION__, func);
|
||||
return COMPAREFUNC_NEVER;
|
||||
}
|
||||
|
||||
int intel_translate_compare_func( GLenum func )
|
||||
{
|
||||
switch(func) {
|
||||
|
|
|
@ -119,6 +119,16 @@ typedef struct {
|
|||
unsigned int depth_tiled;
|
||||
unsigned int rotated_tiled;
|
||||
unsigned int rotated2_tiled;
|
||||
|
||||
int pipeA_x;
|
||||
int pipeA_y;
|
||||
int pipeA_w;
|
||||
int pipeA_h;
|
||||
int pipeB_x;
|
||||
int pipeB_y;
|
||||
int pipeB_w;
|
||||
int pipeB_h;
|
||||
|
||||
} drmI830Sarea;
|
||||
|
||||
/* Flags for perf_boxes
|
||||
|
|
|
@ -180,6 +180,7 @@ struct r200_tex_obj {
|
|||
|
||||
drm_radeon_tex_image_t image[6][RADEON_MAX_TEXTURE_LEVELS];
|
||||
/* Six, for the cube faces */
|
||||
GLboolean image_override; /* Image overridden by GLX_EXT_tfp */
|
||||
|
||||
GLuint pp_txfilter; /* hardware register values */
|
||||
GLuint pp_txformat;
|
||||
|
|
|
@ -36,6 +36,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#ifndef __R200_TEX_H__
|
||||
#define __R200_TEX_H__
|
||||
|
||||
extern void r200SetTexOffset(__DRIcontext *pDRICtx, GLint texname,
|
||||
unsigned long long offset, GLint depth,
|
||||
GLuint pitch);
|
||||
|
||||
extern void r200UpdateTextureState( GLcontext *ctx );
|
||||
|
||||
extern int r200UploadTexImages( r200ContextPtr rmesa, r200TexObjPtr t, GLuint face );
|
||||
|
|
|
@ -182,7 +182,8 @@ static void r200UploadRectSubImage( r200ContextPtr rmesa,
|
|||
/* In this case, could also use GART texturing. This is
|
||||
* currently disabled, but has been tested & works.
|
||||
*/
|
||||
t->pp_txoffset = r200GartOffsetFromVirtual( rmesa, texImage->Data );
|
||||
if ( !t->image_override )
|
||||
t->pp_txoffset = r200GartOffsetFromVirtual( rmesa, texImage->Data );
|
||||
t->pp_txpitch = texImage->RowStride * texFormat->TexelBytes - 32;
|
||||
|
||||
if (R200_DEBUG & DEBUG_TEXTURE)
|
||||
|
@ -468,7 +469,7 @@ int r200UploadTexImages( r200ContextPtr rmesa, r200TexObjPtr t, GLuint face )
|
|||
t->base.firstLevel, t->base.lastLevel );
|
||||
}
|
||||
|
||||
if ( !t || t->base.totalSize == 0 )
|
||||
if ( !t || t->base.totalSize == 0 || t->image_override )
|
||||
return 0;
|
||||
|
||||
if (R200_DEBUG & DEBUG_SYNC) {
|
||||
|
|
|
@ -38,6 +38,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "context.h"
|
||||
#include "macros.h"
|
||||
#include "texformat.h"
|
||||
#include "texobj.h"
|
||||
#include "enums.h"
|
||||
|
||||
#include "r200_context.h"
|
||||
|
@ -73,10 +74,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#define VALID_FORMAT(f) ( ((f) <= MESA_FORMAT_RGBA_DXT5) \
|
||||
&& (tx_table_le[f].format != 0xffffffff) )
|
||||
|
||||
static const struct {
|
||||
struct tx_table {
|
||||
GLuint format, filter;
|
||||
}
|
||||
tx_table_be[] =
|
||||
};
|
||||
|
||||
static const struct tx_table tx_table_be[] =
|
||||
{
|
||||
[ MESA_FORMAT_RGBA8888 ] = { R200_TXFORMAT_ABGR8888 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
|
||||
_ALPHA_REV(RGBA8888),
|
||||
|
@ -105,16 +107,13 @@ tx_table_be[] =
|
|||
_ALPHA(RGBA_DXT5),
|
||||
};
|
||||
|
||||
static const struct {
|
||||
GLuint format, filter;
|
||||
}
|
||||
tx_table_le[] =
|
||||
static const struct tx_table tx_table_le[] =
|
||||
{
|
||||
_ALPHA(RGBA8888),
|
||||
[ MESA_FORMAT_RGBA8888_REV ] = { R200_TXFORMAT_ABGR8888 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
|
||||
_ALPHA(ARGB8888),
|
||||
_ALPHA_REV(ARGB8888),
|
||||
_INVALID(RGB888),
|
||||
[ MESA_FORMAT_RGB888 ] = { R200_TXFORMAT_ARGB8888, 0 },
|
||||
_COLOR(RGB565),
|
||||
_COLOR_REV(RGB565),
|
||||
_ALPHA(ARGB4444),
|
||||
|
@ -161,30 +160,23 @@ static void r200SetTexImages( r200ContextPtr rmesa,
|
|||
GLint i, texelBytes;
|
||||
GLint numLevels;
|
||||
GLint log2Width, log2Height, log2Depth;
|
||||
const GLuint ui = 1;
|
||||
const GLubyte littleEndian = *((const GLubyte *) &ui);
|
||||
|
||||
/* Set the hardware texture format
|
||||
*/
|
||||
if ( !t->image_override ) {
|
||||
if ( VALID_FORMAT( baseImage->TexFormat->MesaFormat ) ) {
|
||||
t->pp_txformat &= ~(R200_TXFORMAT_FORMAT_MASK |
|
||||
R200_TXFORMAT_ALPHA_IN_MAP);
|
||||
t->pp_txfilter &= ~R200_YUV_TO_RGB;
|
||||
|
||||
t->pp_txformat &= ~(R200_TXFORMAT_FORMAT_MASK |
|
||||
R200_TXFORMAT_ALPHA_IN_MAP);
|
||||
t->pp_txfilter &= ~R200_YUV_TO_RGB;
|
||||
|
||||
if ( VALID_FORMAT( baseImage->TexFormat->MesaFormat ) ) {
|
||||
if (littleEndian) {
|
||||
t->pp_txformat |= tx_table_le[ baseImage->TexFormat->MesaFormat ].format;
|
||||
t->pp_txfilter |= tx_table_le[ baseImage->TexFormat->MesaFormat ].filter;
|
||||
}
|
||||
else {
|
||||
t->pp_txformat |= tx_table_be[ baseImage->TexFormat->MesaFormat ].format;
|
||||
t->pp_txfilter |= tx_table_be[ baseImage->TexFormat->MesaFormat ].filter;
|
||||
_mesa_problem(NULL, "unexpected texture format in %s", __FUNCTION__);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
_mesa_problem(NULL, "unexpected texture format in %s", __FUNCTION__);
|
||||
return;
|
||||
}
|
||||
|
||||
texelBytes = baseImage->TexFormat->TexelBytes;
|
||||
|
||||
|
@ -381,11 +373,13 @@ static void r200SetTexImages( r200ContextPtr rmesa,
|
|||
* requires 64-byte aligned pitches, and we may/may not need the
|
||||
* blitter. NPOT only!
|
||||
*/
|
||||
if (baseImage->IsCompressed)
|
||||
t->pp_txpitch = (tObj->Image[0][t->base.firstLevel]->Width + 63) & ~(63);
|
||||
else
|
||||
t->pp_txpitch = ((tObj->Image[0][t->base.firstLevel]->Width * texelBytes) + 63) & ~(63);
|
||||
t->pp_txpitch -= 32;
|
||||
if ( !t->image_override ) {
|
||||
if (baseImage->IsCompressed)
|
||||
t->pp_txpitch = (tObj->Image[0][t->base.firstLevel]->Width + 63) & ~(63);
|
||||
else
|
||||
t->pp_txpitch = ((tObj->Image[0][t->base.firstLevel]->Width * texelBytes) + 63) & ~(63);
|
||||
t->pp_txpitch -= 32;
|
||||
}
|
||||
|
||||
t->dirty_state = TEX_ALL;
|
||||
|
||||
|
@ -980,6 +974,46 @@ static GLboolean r200UpdateTextureEnv( GLcontext *ctx, int unit, int slot, GLuin
|
|||
return GL_TRUE;
|
||||
}
|
||||
|
||||
void r200SetTexOffset(__DRIcontext * pDRICtx, GLint texname,
|
||||
unsigned long long offset, GLint depth, GLuint pitch)
|
||||
{
|
||||
r200ContextPtr rmesa =
|
||||
(r200ContextPtr) ((__DRIcontextPrivate *) pDRICtx->private)->
|
||||
driverPrivate;
|
||||
struct gl_texture_object *tObj =
|
||||
_mesa_lookup_texture(rmesa->glCtx, texname);
|
||||
r200TexObjPtr t;
|
||||
|
||||
if (!tObj)
|
||||
return;
|
||||
|
||||
t = (r200TexObjPtr) tObj->DriverData;
|
||||
|
||||
t->image_override = GL_TRUE;
|
||||
|
||||
if (!offset)
|
||||
return;
|
||||
|
||||
t->pp_txoffset = offset;
|
||||
t->pp_txpitch = pitch - 32;
|
||||
|
||||
switch (depth) {
|
||||
case 32:
|
||||
t->pp_txformat = tx_table_le[MESA_FORMAT_ARGB8888].format;
|
||||
t->pp_txfilter |= tx_table_le[MESA_FORMAT_ARGB8888].filter;
|
||||
break;
|
||||
case 24:
|
||||
default:
|
||||
t->pp_txformat = tx_table_le[MESA_FORMAT_RGB888].format;
|
||||
t->pp_txfilter |= tx_table_le[MESA_FORMAT_RGB888].filter;
|
||||
break;
|
||||
case 16:
|
||||
t->pp_txformat = tx_table_le[MESA_FORMAT_RGB565].format;
|
||||
t->pp_txfilter |= tx_table_le[MESA_FORMAT_RGB565].filter;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#define REF_COLOR 1
|
||||
#define REF_ALPHA 2
|
||||
|
||||
|
@ -1561,7 +1595,7 @@ static GLboolean enable_tex_2d( GLcontext *ctx, int unit )
|
|||
R200_FIREVERTICES( rmesa );
|
||||
r200SetTexImages( rmesa, tObj );
|
||||
r200UploadTexImages( rmesa, (r200TexObjPtr) tObj->DriverData, 0 );
|
||||
if ( !t->base.memBlock )
|
||||
if ( !t->base.memBlock && !t->image_override )
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
|
@ -1669,7 +1703,9 @@ static GLboolean enable_tex_rect( GLcontext *ctx, int unit )
|
|||
R200_FIREVERTICES( rmesa );
|
||||
r200SetTexImages( rmesa, tObj );
|
||||
r200UploadTexImages( rmesa, (r200TexObjPtr) tObj->DriverData, 0 );
|
||||
if ( !t->base.memBlock && !rmesa->prefer_gart_client_texturing )
|
||||
if ( !t->base.memBlock &&
|
||||
!t->image_override &&
|
||||
!rmesa->prefer_gart_client_texturing )
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
|
|
181
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/radeon_chipset.h
vendored
Normal file
181
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/radeon_chipset.h
vendored
Normal file
|
@ -0,0 +1,181 @@
|
|||
#ifndef _RADEON_CHIPSET_H
|
||||
#define _RADEON_CHIPSET_H
|
||||
/* Including xf86PciInfo.h introduces a bunch of errors...
|
||||
*/
|
||||
|
||||
/* General chip classes:
|
||||
* r100 includes R100, RV100, RV200, RS100, RS200, RS250.
|
||||
* r200 includes R200, RV250, RV280, RS300.
|
||||
* r300 includes R300, RV350, RV370.
|
||||
* (RS* denotes IGP)
|
||||
*/
|
||||
#define PCI_CHIP_RV380_3150 0x3150
|
||||
#define PCI_CHIP_RV380_3152 0x3152
|
||||
#define PCI_CHIP_RV380_3154 0x3154
|
||||
#define PCI_CHIP_RV380_3E50 0x3E50
|
||||
#define PCI_CHIP_RV380_3E54 0x3E54
|
||||
#define PCI_CHIP_RS100_4136 0x4136
|
||||
#define PCI_CHIP_RS200_4137 0x4137
|
||||
#define PCI_CHIP_R300_AD 0x4144
|
||||
#define PCI_CHIP_R300_AE 0x4145
|
||||
#define PCI_CHIP_R300_AF 0x4146
|
||||
#define PCI_CHIP_R300_AG 0x4147
|
||||
#define PCI_CHIP_R350_AH 0x4148
|
||||
#define PCI_CHIP_R350_AI 0x4149
|
||||
#define PCI_CHIP_R350_AJ 0x414A
|
||||
#define PCI_CHIP_R350_AK 0x414B
|
||||
#define PCI_CHIP_RV350_AP 0x4150
|
||||
#define PCI_CHIP_RV350_AQ 0x4151
|
||||
#define PCI_CHIP_RV350_AR 0x4152
|
||||
#define PCI_CHIP_RV350_AS 0x4153
|
||||
#define PCI_CHIP_RV350_AT 0x4154
|
||||
#define PCI_CHIP_RV350_AU 0x4155
|
||||
#define PCI_CHIP_RV350_AV 0x4156
|
||||
#define PCI_CHIP_RS250_4237 0x4237
|
||||
#define PCI_CHIP_R200_BB 0x4242
|
||||
#define PCI_CHIP_R200_BC 0x4243
|
||||
#define PCI_CHIP_RS100_4336 0x4336
|
||||
#define PCI_CHIP_RS200_4337 0x4337
|
||||
#define PCI_CHIP_RS250_4437 0x4437
|
||||
#define PCI_CHIP_RV250_If 0x4966
|
||||
#define PCI_CHIP_RV250_Ig 0x4967
|
||||
#define PCI_CHIP_R420_JH 0x4A48
|
||||
#define PCI_CHIP_R420_JI 0x4A49
|
||||
#define PCI_CHIP_R420_JJ 0x4A4A
|
||||
#define PCI_CHIP_R420_JK 0x4A4B
|
||||
#define PCI_CHIP_R420_JL 0x4A4C
|
||||
#define PCI_CHIP_R420_JM 0x4A4D
|
||||
#define PCI_CHIP_R420_JN 0x4A4E
|
||||
#define PCI_CHIP_R420_JO 0x4A4F
|
||||
#define PCI_CHIP_R420_JP 0x4A50
|
||||
#define PCI_CHIP_R420_JT 0x4A54
|
||||
#define PCI_CHIP_R481_4B49 0x4B49
|
||||
#define PCI_CHIP_R481_4B4A 0x4B4A
|
||||
#define PCI_CHIP_R481_4B4B 0x4B4B
|
||||
#define PCI_CHIP_R481_4B4C 0x4B4C
|
||||
#define PCI_CHIP_RADEON_LW 0x4C57
|
||||
#define PCI_CHIP_RADEON_LX 0x4C58
|
||||
#define PCI_CHIP_RADEON_LY 0x4C59
|
||||
#define PCI_CHIP_RADEON_LZ 0x4C5A
|
||||
#define PCI_CHIP_RV250_Ld 0x4C64
|
||||
#define PCI_CHIP_RV250_Lf 0x4C66
|
||||
#define PCI_CHIP_RV250_Lg 0x4C67
|
||||
#define PCI_CHIP_R300_ND 0x4E44
|
||||
#define PCI_CHIP_R300_NE 0x4E45
|
||||
#define PCI_CHIP_R300_NF 0x4E46
|
||||
#define PCI_CHIP_R300_NG 0x4E47
|
||||
#define PCI_CHIP_R350_NH 0x4E48
|
||||
#define PCI_CHIP_R350_NI 0x4E49
|
||||
#define PCI_CHIP_R360_NJ 0x4E4A
|
||||
#define PCI_CHIP_R350_NK 0x4E4B
|
||||
#define PCI_CHIP_RV350_NP 0x4E50
|
||||
#define PCI_CHIP_RV350_NQ 0x4E51
|
||||
#define PCI_CHIP_RV350_NR 0x4E52
|
||||
#define PCI_CHIP_RV350_NS 0x4E53
|
||||
#define PCI_CHIP_RV350_NT 0x4E54
|
||||
#define PCI_CHIP_RV350_NV 0x4E56
|
||||
#define PCI_CHIP_RADEON_QD 0x5144
|
||||
#define PCI_CHIP_RADEON_QE 0x5145
|
||||
#define PCI_CHIP_RADEON_QF 0x5146
|
||||
#define PCI_CHIP_RADEON_QG 0x5147
|
||||
#define PCI_CHIP_R200_QH 0x5148
|
||||
#define PCI_CHIP_R200_QL 0x514C
|
||||
#define PCI_CHIP_R200_QM 0x514D
|
||||
#define PCI_CHIP_RV200_QW 0x5157
|
||||
#define PCI_CHIP_RV200_QX 0x5158
|
||||
#define PCI_CHIP_RADEON_QY 0x5159
|
||||
#define PCI_CHIP_RADEON_QZ 0x515A
|
||||
#define PCI_CHIP_RN50_515E 0x515E
|
||||
#define PCI_CHIP_RV370_5460 0x5460
|
||||
#define PCI_CHIP_RV370_5462 0x5462
|
||||
#define PCI_CHIP_RV370_5464 0x5464
|
||||
#define PCI_CHIP_R423_UH 0x5548
|
||||
#define PCI_CHIP_R423_UI 0x5549
|
||||
#define PCI_CHIP_R423_UJ 0x554A
|
||||
#define PCI_CHIP_R423_UK 0x554B
|
||||
#define PCI_CHIP_R430_554C 0x554C
|
||||
#define PCI_CHIP_R430_554D 0x554D
|
||||
#define PCI_CHIP_R430_554E 0x554E
|
||||
#define PCI_CHIP_R430_554F 0x554F
|
||||
#define PCI_CHIP_R423_5550 0x5550
|
||||
#define PCI_CHIP_R423_UQ 0x5551
|
||||
#define PCI_CHIP_R423_UR 0x5552
|
||||
#define PCI_CHIP_R423_UT 0x5554
|
||||
#define PCI_CHIP_RV410_564A 0x564A
|
||||
#define PCI_CHIP_RV410_564B 0x564B
|
||||
#define PCI_CHIP_RV410_564F 0x564F
|
||||
#define PCI_CHIP_RV410_5652 0x5652
|
||||
#define PCI_CHIP_RV410_5653 0x5653
|
||||
#define PCI_CHIP_RS300_5834 0x5834
|
||||
#define PCI_CHIP_RS300_5835 0x5835
|
||||
#define PCI_CHIP_RS480_5954 0x5954
|
||||
#define PCI_CHIP_RS480_5955 0x5955
|
||||
#define PCI_CHIP_RV280_5960 0x5960
|
||||
#define PCI_CHIP_RV280_5961 0x5961
|
||||
#define PCI_CHIP_RV280_5962 0x5962
|
||||
#define PCI_CHIP_RV280_5964 0x5964
|
||||
#define PCI_CHIP_RV280_5965 0x5965
|
||||
#define PCI_CHIP_RN50_5969 0x5969
|
||||
#define PCI_CHIP_RS482_5974 0x5974
|
||||
#define PCI_CHIP_RS482_5975 0x5975
|
||||
#define PCI_CHIP_RS400_5A41 0x5A41
|
||||
#define PCI_CHIP_RS400_5A42 0x5A42
|
||||
#define PCI_CHIP_RC410_5A61 0x5A61
|
||||
#define PCI_CHIP_RC410_5A62 0x5A62
|
||||
#define PCI_CHIP_RV370_5B60 0x5B60
|
||||
#define PCI_CHIP_RV370_5B62 0x5B62
|
||||
#define PCI_CHIP_RV370_5B63 0x5B63
|
||||
#define PCI_CHIP_RV370_5B64 0x5B64
|
||||
#define PCI_CHIP_RV370_5B65 0x5B65
|
||||
#define PCI_CHIP_RV280_5C61 0x5C61
|
||||
#define PCI_CHIP_RV280_5C63 0x5C63
|
||||
#define PCI_CHIP_R430_5D48 0x5D48
|
||||
#define PCI_CHIP_R430_5D49 0x5D49
|
||||
#define PCI_CHIP_R430_5D4A 0x5D4A
|
||||
#define PCI_CHIP_R480_5D4C 0x5D4C
|
||||
#define PCI_CHIP_R480_5D4D 0x5D4D
|
||||
#define PCI_CHIP_R480_5D4E 0x5D4E
|
||||
#define PCI_CHIP_R480_5D4F 0x5D4F
|
||||
#define PCI_CHIP_R480_5D50 0x5D50
|
||||
#define PCI_CHIP_R480_5D52 0x5D52
|
||||
#define PCI_CHIP_R423_5D57 0x5D57
|
||||
#define PCI_CHIP_RV410_5E48 0x5E48
|
||||
#define PCI_CHIP_RV410_5E4A 0x5E4A
|
||||
#define PCI_CHIP_RV410_5E4B 0x5E4B
|
||||
#define PCI_CHIP_RV410_5E4C 0x5E4C
|
||||
#define PCI_CHIP_RV410_5E4D 0x5E4D
|
||||
#define PCI_CHIP_RV410_5E4F 0x5E4F
|
||||
#define PCI_CHIP_RS350_7834 0x7834
|
||||
#define PCI_CHIP_RS350_7835 0x7835
|
||||
|
||||
enum {
|
||||
CHIP_FAMILY_R100,
|
||||
CHIP_FAMILY_RV100,
|
||||
CHIP_FAMILY_RS100,
|
||||
CHIP_FAMILY_RV200,
|
||||
CHIP_FAMILY_RS200,
|
||||
CHIP_FAMILY_R200,
|
||||
CHIP_FAMILY_RV250,
|
||||
CHIP_FAMILY_RS300,
|
||||
CHIP_FAMILY_RV280,
|
||||
CHIP_FAMILY_R300,
|
||||
CHIP_FAMILY_R350,
|
||||
CHIP_FAMILY_RV350,
|
||||
CHIP_FAMILY_RV380,
|
||||
CHIP_FAMILY_R420,
|
||||
CHIP_FAMILY_RV410,
|
||||
CHIP_FAMILY_RS400,
|
||||
CHIP_FAMILY_LAST
|
||||
};
|
||||
|
||||
/* General classes of Radeons, as described above the device ID section */
|
||||
#define RADEON_CLASS_R100 (0 << 0)
|
||||
#define RADEON_CLASS_R200 (1 << 0)
|
||||
#define RADEON_CLASS_R300 (2 << 0)
|
||||
#define RADEON_CLASS_MASK (3 << 0)
|
||||
|
||||
#define RADEON_CHIPSET_TCL (1 << 2) /* tcl support - any radeon */
|
||||
#define RADEON_CHIPSET_BROKEN_STENCIL (1 << 3) /* r100 stencil bug */
|
||||
#define R200_CHIPSET_YCBCR_BROKEN (1 << 4) /* r200 ycbcr bug */
|
||||
|
||||
#endif /* _RADEON_CHIPSET_H */
|
1104
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/radeon_screen.c
vendored
Normal file
1104
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/radeon_screen.c
vendored
Normal file
File diff suppressed because it is too large
Load diff
115
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/radeon_screen.h
vendored
Normal file
115
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/radeon_screen.h
vendored
Normal file
|
@ -0,0 +1,115 @@
|
|||
/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_screen.h,v 1.5 2002/12/16 16:18:58 dawes Exp $ */
|
||||
/**************************************************************************
|
||||
|
||||
Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
|
||||
VA Linux Systems Inc., Fremont, California.
|
||||
|
||||
All Rights Reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice (including the
|
||||
next paragraph) shall be included in all copies or substantial
|
||||
portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
**************************************************************************/
|
||||
|
||||
/*
|
||||
* Authors:
|
||||
* Kevin E. Martin <martin@valinux.com>
|
||||
* Gareth Hughes <gareth@valinux.com>
|
||||
*/
|
||||
|
||||
#ifndef __RADEON_SCREEN_H__
|
||||
#define __RADEON_SCREEN_H__
|
||||
|
||||
/*
|
||||
* IMPORTS: these headers contain all the DRI, X and kernel-related
|
||||
* definitions that we need.
|
||||
*/
|
||||
#include "dri_util.h"
|
||||
#include "radeon_dri.h"
|
||||
#include "radeon_chipset.h"
|
||||
#include "radeon_reg.h"
|
||||
#include "drm_sarea.h"
|
||||
#include "xmlconfig.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
drm_handle_t handle; /* Handle to the DRM region */
|
||||
drmSize size; /* Size of the DRM region */
|
||||
drmAddress map; /* Mapping of the DRM region */
|
||||
} radeonRegionRec, *radeonRegionPtr;
|
||||
|
||||
typedef struct {
|
||||
int chip_family;
|
||||
int chip_flags;
|
||||
int cpp;
|
||||
int card_type;
|
||||
int AGPMode;
|
||||
unsigned int irq; /* IRQ number (0 means none) */
|
||||
|
||||
unsigned int fbLocation;
|
||||
unsigned int frontOffset;
|
||||
unsigned int frontPitch;
|
||||
unsigned int backOffset;
|
||||
unsigned int backPitch;
|
||||
|
||||
unsigned int depthOffset;
|
||||
unsigned int depthPitch;
|
||||
|
||||
/* Shared texture data */
|
||||
int numTexHeaps;
|
||||
int texOffset[RADEON_NR_TEX_HEAPS];
|
||||
int texSize[RADEON_NR_TEX_HEAPS];
|
||||
int logTexGranularity[RADEON_NR_TEX_HEAPS];
|
||||
|
||||
radeonRegionRec mmio;
|
||||
radeonRegionRec status;
|
||||
radeonRegionRec gartTextures;
|
||||
|
||||
drmBufMapPtr buffers;
|
||||
|
||||
__volatile__ u_int32_t *scratch;
|
||||
|
||||
__DRIscreenPrivate *driScreen;
|
||||
unsigned int sarea_priv_offset;
|
||||
unsigned int gart_buffer_offset; /* offset in card memory space */
|
||||
unsigned int gart_texture_offset; /* offset in card memory space */
|
||||
unsigned int gart_base;
|
||||
|
||||
GLboolean drmSupportsCubeMapsR200; /* need radeon kernel module >= 1.7 */
|
||||
GLboolean drmSupportsBlendColor; /* need radeon kernel module >= 1.11 */
|
||||
GLboolean drmSupportsTriPerf; /* need radeon kernel module >= 1.16 */
|
||||
GLboolean drmSupportsFragShader; /* need radeon kernel module >= 1.18 */
|
||||
GLboolean drmSupportsPointSprites; /* need radeon kernel module >= 1.13 */
|
||||
GLboolean drmSupportsCubeMapsR100; /* need radeon kernel module >= 1.15 */
|
||||
GLboolean drmSupportsVertexProgram; /* need radeon kernel module >= 1.25 */
|
||||
GLboolean depthHasSurface;
|
||||
|
||||
/* Configuration cache with default values for all contexts */
|
||||
driOptionCache optionCache;
|
||||
} radeonScreenRec, *radeonScreenPtr;
|
||||
|
||||
#define IS_R100_CLASS(screen) \
|
||||
((screen->chip_flags & RADEON_CLASS_MASK) == RADEON_CLASS_R100)
|
||||
#define IS_R200_CLASS(screen) \
|
||||
((screen->chip_flags & RADEON_CLASS_MASK) == RADEON_CLASS_R200)
|
||||
#define IS_R300_CLASS(screen) \
|
||||
((screen->chip_flags & RADEON_CLASS_MASK) == RADEON_CLASS_R300)
|
||||
|
||||
#endif /* __RADEON_SCREEN_H__ */
|
209
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon.h
vendored
Normal file
209
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon.h
vendored
Normal file
|
@ -0,0 +1,209 @@
|
|||
/**
|
||||
* \file server/radeon.h
|
||||
* \brief Radeon 2D driver data structures.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
|
||||
* VA Linux Systems Inc., Fremont, California.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation on the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial
|
||||
* portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NON-INFRINGEMENT. IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR
|
||||
* THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h,v 1.29 2002/10/12 01:38:07 martin Exp $ */
|
||||
|
||||
#ifndef _RADEON_H_
|
||||
#define _RADEON_H_
|
||||
|
||||
#include "xf86drm.h" /* drm_handle_t, etc */
|
||||
|
||||
# define RADEON_AGP_1X_MODE 0x01
|
||||
# define RADEON_AGP_2X_MODE 0x02
|
||||
# define RADEON_AGP_4X_MODE 0x04
|
||||
# define RADEON_AGP_FW_MODE 0x10
|
||||
# define RADEON_AGP_MODE_MASK 0x17
|
||||
#define RADEON_CP_CSQ_CNTL 0x0740
|
||||
# define RADEON_CSQ_CNT_PRIMARY_MASK (0xff << 0)
|
||||
# define RADEON_CSQ_PRIDIS_INDDIS (0 << 28)
|
||||
# define RADEON_CSQ_PRIPIO_INDDIS (1 << 28)
|
||||
# define RADEON_CSQ_PRIBM_INDDIS (2 << 28)
|
||||
# define RADEON_CSQ_PRIPIO_INDBM (3 << 28)
|
||||
# define RADEON_CSQ_PRIBM_INDBM (4 << 28)
|
||||
# define RADEON_CSQ_PRIPIO_INDPIO (15 << 28)
|
||||
|
||||
#define RADEON_PCIGART_TABLE_SIZE 32768
|
||||
|
||||
#define PCI_CHIP_R200_BB 0x4242
|
||||
#define PCI_CHIP_RV250_Id 0x4964
|
||||
#define PCI_CHIP_RV250_Ie 0x4965
|
||||
#define PCI_CHIP_RV250_If 0x4966
|
||||
#define PCI_CHIP_RV250_Ig 0x4967
|
||||
#define PCI_CHIP_RADEON_LW 0x4C57
|
||||
#define PCI_CHIP_RADEON_LX 0x4C58
|
||||
#define PCI_CHIP_RADEON_LY 0x4C59
|
||||
#define PCI_CHIP_RADEON_LZ 0x4C5A
|
||||
#define PCI_CHIP_RV250_Ld 0x4C64
|
||||
#define PCI_CHIP_RV250_Le 0x4C65
|
||||
#define PCI_CHIP_RV250_Lf 0x4C66
|
||||
#define PCI_CHIP_RV250_Lg 0x4C67
|
||||
#define PCI_CHIP_R300_ND 0x4E44
|
||||
#define PCI_CHIP_R300_NE 0x4E45
|
||||
#define PCI_CHIP_R300_NF 0x4E46
|
||||
#define PCI_CHIP_R300_NG 0x4E47
|
||||
#define PCI_CHIP_RADEON_QD 0x5144
|
||||
#define PCI_CHIP_RADEON_QE 0x5145
|
||||
#define PCI_CHIP_RADEON_QF 0x5146
|
||||
#define PCI_CHIP_RADEON_QG 0x5147
|
||||
#define PCI_CHIP_R200_QL 0x514C
|
||||
#define PCI_CHIP_R200_QN 0x514E
|
||||
#define PCI_CHIP_R200_QO 0x514F
|
||||
#define PCI_CHIP_RV200_QW 0x5157
|
||||
#define PCI_CHIP_RV200_QX 0x5158
|
||||
#define PCI_CHIP_RADEON_QY 0x5159
|
||||
#define PCI_CHIP_RADEON_QZ 0x515A
|
||||
#define PCI_CHIP_R200_Ql 0x516C
|
||||
#define PCI_CHIP_RV370_5460 0x5460
|
||||
#define PCI_CHIP_RV280_Y_ 0x5960
|
||||
#define PCI_CHIP_RV280_Ya 0x5961
|
||||
#define PCI_CHIP_RV280_Yb 0x5962
|
||||
#define PCI_CHIP_RV280_Yc 0x5963
|
||||
|
||||
/**
|
||||
* \brief Chip families.
|
||||
*/
|
||||
typedef enum {
|
||||
CHIP_FAMILY_UNKNOW,
|
||||
CHIP_FAMILY_LEGACY,
|
||||
CHIP_FAMILY_R128,
|
||||
CHIP_FAMILY_M3,
|
||||
CHIP_FAMILY_RADEON,
|
||||
CHIP_FAMILY_VE,
|
||||
CHIP_FAMILY_M6,
|
||||
CHIP_FAMILY_RV200,
|
||||
CHIP_FAMILY_M7,
|
||||
CHIP_FAMILY_R200,
|
||||
CHIP_FAMILY_RV250,
|
||||
CHIP_FAMILY_M9,
|
||||
CHIP_FAMILY_RV280,
|
||||
CHIP_FAMILY_R300,
|
||||
CHIP_FAMILY_R350,
|
||||
CHIP_FAMILY_RV350,
|
||||
CHIP_FAMILY_RV380, /* RV370/RV380/M22/M24 */
|
||||
CHIP_FAMILY_R420, /* R420/R423/M18 */
|
||||
} RADEONChipFamily;
|
||||
|
||||
|
||||
typedef unsigned long memType;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Radeon DDX driver private data.
|
||||
*/
|
||||
typedef struct {
|
||||
int Chipset; /**< \brief Chipset number */
|
||||
RADEONChipFamily ChipFamily; /**< \brief Chip family */
|
||||
|
||||
unsigned long LinearAddr; /**< \brief Frame buffer physical address */
|
||||
|
||||
|
||||
drmSize registerSize; /**< \brief MMIO register map size */
|
||||
drm_handle_t registerHandle; /**< \brief MMIO register map handle */
|
||||
|
||||
int IsPCI; /* Current card is a PCI card */
|
||||
|
||||
/**
|
||||
* \name AGP
|
||||
*/
|
||||
/*@{*/
|
||||
drmSize gartSize; /**< \brief AGP map size */
|
||||
drm_handle_t gartMemHandle; /**< \brief AGP map handle */
|
||||
unsigned long gartOffset; /**< \brief AGP offset */
|
||||
int gartMode; /**< \brief AGP mode */
|
||||
int gartFastWrite;
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name CP ring buffer data
|
||||
*/
|
||||
/*@{*/
|
||||
unsigned long ringStart; /**< \brief Offset into AGP space */
|
||||
drm_handle_t ringHandle; /**< \brief Handle from drmAddMap() */
|
||||
drmSize ringMapSize; /**< \brief Size of map */
|
||||
int ringSize; /**< \brief Size of ring (in MB) */
|
||||
|
||||
unsigned long ringReadOffset; /**< \brief Read offset into AGP space */
|
||||
drm_handle_t ringReadPtrHandle;/**< \brief Handle from drmAddMap() */
|
||||
drmSize ringReadMapSize; /**< \brief Size of map */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name CP vertex/indirect buffer data
|
||||
*/
|
||||
/*@{*/
|
||||
unsigned long bufStart; /**< \brief Offset into AGP space */
|
||||
drm_handle_t bufHandle; /**< \brief Handle from drmAddMap() */
|
||||
drmSize bufMapSize; /**< \brief Size of map */
|
||||
int bufSize; /**< \brief Size of buffers (in MB) */
|
||||
int bufNumBufs; /**< \brief Number of buffers */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name CP AGP Texture data
|
||||
*/
|
||||
/*@{*/
|
||||
unsigned long gartTexStart; /**< \brief Offset into AGP space */
|
||||
drm_handle_t gartTexHandle; /**< \brief Handle from drmAddMap() */
|
||||
drmSize gartTexMapSize; /**< \brief Size of map */
|
||||
int gartTexSize; /**< \brief Size of AGP tex space (in MB) */
|
||||
int log2GARTTexGran;
|
||||
/*@}*/
|
||||
|
||||
int drmMinor; /**< \brief DRM device minor number */
|
||||
|
||||
int frontOffset; /**< \brief Front color buffer offset */
|
||||
int frontPitch; /**< \brief Front color buffer pitch */
|
||||
int backOffset; /**< \brief Back color buffer offset */
|
||||
int backPitch; /**< \brief Back color buffer pitch */
|
||||
int depthOffset; /**< \brief Depth buffer offset */
|
||||
int depthPitch; /**< \brief Depth buffer pitch */
|
||||
int textureOffset; /**< \brief Texture area offset */
|
||||
int textureSize; /**< \brief Texture area size */
|
||||
int log2TexGran; /**< \brief Texture granularity in base 2 log */
|
||||
|
||||
unsigned int frontPitchOffset;
|
||||
unsigned int backPitchOffset;
|
||||
unsigned int depthPitchOffset;
|
||||
|
||||
int colorTiling; /**< \brief Enable color tiling */
|
||||
|
||||
int irq; /**< \brief IRQ number */
|
||||
int page_flip_enable; /**< \brief Page Flip enable */
|
||||
unsigned int gen_int_cntl;
|
||||
unsigned int crtc_offset_cntl;
|
||||
|
||||
unsigned long pcieGartTableOffset;
|
||||
} RADEONInfoRec, *RADEONInfoPtr;
|
||||
|
||||
|
||||
#endif /* _RADEON_H_ */
|
1337
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon_dri.c
vendored
Normal file
1337
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon_dri.c
vendored
Normal file
File diff suppressed because it is too large
Load diff
116
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon_dri.h
vendored
Normal file
116
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon_dri.h
vendored
Normal file
|
@ -0,0 +1,116 @@
|
|||
/**
|
||||
* \file server/radeon_dri.h
|
||||
* \brief Radeon server-side structures.
|
||||
*
|
||||
* \author Kevin E. Martin <martin@xfree86.org>
|
||||
* \author Rickard E. Faith <faith@valinux.com>
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright 2000 ATI Technologies Inc., Markham, Ontario,
|
||||
* VA Linux Systems Inc., Fremont, California.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation on the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial
|
||||
* portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NON-INFRINGEMENT. IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR
|
||||
* THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.h,v 1.3 2002/04/24 16:20:40 martin Exp $ */
|
||||
|
||||
#ifndef _RADEON_DRI_
|
||||
#define _RADEON_DRI_
|
||||
|
||||
#include "xf86drm.h"
|
||||
#include "drm.h"
|
||||
#include "radeon_drm.h"
|
||||
|
||||
/* DRI Driver defaults */
|
||||
#define RADEON_DEFAULT_CP_PIO_MODE RADEON_CSQ_PRIPIO_INDPIO
|
||||
#define RADEON_DEFAULT_CP_BM_MODE RADEON_CSQ_PRIBM_INDBM
|
||||
#define RADEON_DEFAULT_AGP_MODE 1
|
||||
#define RADEON_DEFAULT_AGP_FAST_WRITE 0
|
||||
#define RADEON_DEFAULT_AGP_SIZE 8 /* MB (must be 2^n and > 4MB) */
|
||||
#define RADEON_DEFAULT_RING_SIZE 1 /* MB (must be page aligned) */
|
||||
#define RADEON_DEFAULT_BUFFER_SIZE 2 /* MB (must be page aligned) */
|
||||
#define RADEON_DEFAULT_AGP_TEX_SIZE 1 /* MB (must be page aligned) */
|
||||
#define RADEON_DEFAULT_CP_TIMEOUT 10000 /* usecs */
|
||||
#define RADEON_DEFAULT_PAGE_FLIP 0 /* page flipping diabled */
|
||||
#define RADEON_BUFFER_ALIGN 0x00000fff
|
||||
|
||||
/**
|
||||
* \brief Radeon DRI driver private data.
|
||||
*/
|
||||
typedef struct {
|
||||
/**
|
||||
* \name DRI screen private data
|
||||
*/
|
||||
/*@{*/
|
||||
int deviceID; /**< \brief PCI device ID */
|
||||
int width; /**< \brief width in pixels of display */
|
||||
int height; /**< \brief height in scanlines of display */
|
||||
int depth; /**< \brief depth of display (8, 15, 16, 24) */
|
||||
int bpp; /**< \brief bit depth of display (8, 16, 24, 32) */
|
||||
|
||||
int IsPCI; /**< \brief is current card a PCI card? */
|
||||
int AGPMode; /**< \brief AGP mode */
|
||||
|
||||
int frontOffset; /**< \brief front buffer offset */
|
||||
int frontPitch; /**< \brief front buffer pitch */
|
||||
int backOffset; /**< \brief shared back buffer offset */
|
||||
int backPitch; /**< \brief shared back buffer pitch */
|
||||
int depthOffset; /**< \brief shared depth buffer offset */
|
||||
int depthPitch; /**< \brief shared depth buffer pitch */
|
||||
int textureOffset; /**< \brief start of texture data in frame buffer */
|
||||
int textureSize; /**< \brief size of texture date */
|
||||
int log2TexGran; /**< \brief log2 texture granularity */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name MMIO register data
|
||||
*/
|
||||
/*@{*/
|
||||
drm_handle_t registerHandle; /**< \brief MMIO register map size */
|
||||
drmSize registerSize; /**< \brief MMIO register map handle */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name CP in-memory status information
|
||||
*/
|
||||
/*@{*/
|
||||
drm_handle_t statusHandle; /**< \brief status map handle */
|
||||
drmSize statusSize; /**< \brief status map size */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name CP AGP Texture data
|
||||
*/
|
||||
/*@{*/
|
||||
drm_handle_t gartTexHandle; /**< \brief AGP texture area map handle */
|
||||
drmSize gartTexMapSize; /**< \brief AGP texture area map size */
|
||||
int log2GARTTexGran; /**< \brief AGP texture granularity in log base 2 */
|
||||
int gartTexOffset; /**< \brief AGP texture area offset in AGP space */
|
||||
/*@}*/
|
||||
|
||||
unsigned int sarea_priv_offset; /**< \brief offset of the private SAREA data*/
|
||||
} RADEONDRIRec, *RADEONDRIPtr;
|
||||
|
||||
#endif
|
1088
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon_egl.c
vendored
Normal file
1088
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon_egl.c
vendored
Normal file
File diff suppressed because it is too large
Load diff
129
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon_macros.h
vendored
Normal file
129
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon_macros.h
vendored
Normal file
|
@ -0,0 +1,129 @@
|
|||
/**
|
||||
* \file server/radeon_macros.h
|
||||
* \brief Macros for Radeon MMIO operation.
|
||||
*
|
||||
* \authors Kevin E. Martin <martin@xfree86.org>
|
||||
* \authors Rickard E. Faith <faith@valinux.com>
|
||||
* \authors Alan Hourihane <alanh@fairlite.demon.co.uk>
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
|
||||
* VA Linux Systems Inc., Fremont, California.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation on the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial
|
||||
* portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NON-INFRINGEMENT. IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR
|
||||
* THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h,v 1.20 2002/10/12 01:38:07 martin Exp $ */
|
||||
|
||||
#ifndef _RADEON_MACROS_H_
|
||||
#define _RADEON_MACROS_H_
|
||||
|
||||
#include <mmio.h>
|
||||
|
||||
# define MMIO_IN8(base, offset) \
|
||||
*(volatile unsigned char *)(((unsigned char*)(base)) + (offset))
|
||||
# define MMIO_IN32(base, offset) \
|
||||
read_MMIO_LE32(base, offset)
|
||||
# define MMIO_OUT8(base, offset, val) \
|
||||
*(volatile unsigned char *)(((unsigned char*)(base)) + (offset)) = (val)
|
||||
# define MMIO_OUT32(base, offset, val) \
|
||||
*(volatile unsigned int *)(void *)(((unsigned char*)(base)) + (offset)) = CPU_TO_LE32(val)
|
||||
|
||||
|
||||
/* Memory mapped register access macros */
|
||||
#define INREG8(addr) MMIO_IN8(RADEONMMIO, addr)
|
||||
#define INREG(addr) MMIO_IN32(RADEONMMIO, addr)
|
||||
#define OUTREG8(addr, val) MMIO_OUT8(RADEONMMIO, addr, val)
|
||||
#define OUTREG(addr, val) MMIO_OUT32(RADEONMMIO, addr, val)
|
||||
|
||||
#define ADDRREG(addr) ((volatile GLuint *)(pointer)(RADEONMMIO + (addr)))
|
||||
|
||||
|
||||
#define OUTREGP(addr, val, mask) \
|
||||
do { \
|
||||
GLuint tmp = INREG(addr); \
|
||||
tmp &= (mask); \
|
||||
tmp |= (val); \
|
||||
OUTREG(addr, tmp); \
|
||||
} while (0)
|
||||
|
||||
#define INPLL(dpy, addr) RADEONINPLL(dpy, addr)
|
||||
|
||||
#define OUTPLL(addr, val) \
|
||||
do { \
|
||||
OUTREG8(RADEON_CLOCK_CNTL_INDEX, (((addr) & 0x3f) | \
|
||||
RADEON_PLL_WR_EN)); \
|
||||
OUTREG(RADEON_CLOCK_CNTL_DATA, val); \
|
||||
} while (0)
|
||||
|
||||
#define OUTPLLP(dpy, addr, val, mask) \
|
||||
do { \
|
||||
GLuint tmp = INPLL(dpy, addr); \
|
||||
tmp &= (mask); \
|
||||
tmp |= (val); \
|
||||
OUTPLL(addr, tmp); \
|
||||
} while (0)
|
||||
|
||||
#define OUTPAL_START(idx) \
|
||||
do { \
|
||||
OUTREG8(RADEON_PALETTE_INDEX, (idx)); \
|
||||
} while (0)
|
||||
|
||||
#define OUTPAL_NEXT(r, g, b) \
|
||||
do { \
|
||||
OUTREG(RADEON_PALETTE_DATA, ((r) << 16) | ((g) << 8) | (b)); \
|
||||
} while (0)
|
||||
|
||||
#define OUTPAL_NEXT_CARD32(v) \
|
||||
do { \
|
||||
OUTREG(RADEON_PALETTE_DATA, (v & 0x00ffffff)); \
|
||||
} while (0)
|
||||
|
||||
#define OUTPAL(idx, r, g, b) \
|
||||
do { \
|
||||
OUTPAL_START((idx)); \
|
||||
OUTPAL_NEXT((r), (g), (b)); \
|
||||
} while (0)
|
||||
|
||||
#define INPAL_START(idx) \
|
||||
do { \
|
||||
OUTREG(RADEON_PALETTE_INDEX, (idx) << 16); \
|
||||
} while (0)
|
||||
|
||||
#define INPAL_NEXT() INREG(RADEON_PALETTE_DATA)
|
||||
|
||||
#define PAL_SELECT(idx) \
|
||||
do { \
|
||||
if (!idx) { \
|
||||
OUTREG(RADEON_DAC_CNTL2, INREG(RADEON_DAC_CNTL2) & \
|
||||
(GLuint)~RADEON_DAC2_PALETTE_ACC_CTL); \
|
||||
} else { \
|
||||
OUTREG(RADEON_DAC_CNTL2, INREG(RADEON_DAC_CNTL2) | \
|
||||
RADEON_DAC2_PALETTE_ACC_CTL); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
#endif
|
2144
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon_reg.h
vendored
Normal file
2144
reactos/dll/3rdparty/mesa32/src/drivers/dri/r200/server/radeon_reg.h
vendored
Normal file
File diff suppressed because it is too large
Load diff
181
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/radeon_chipset.h
vendored
Normal file
181
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/radeon_chipset.h
vendored
Normal file
|
@ -0,0 +1,181 @@
|
|||
#ifndef _RADEON_CHIPSET_H
|
||||
#define _RADEON_CHIPSET_H
|
||||
/* Including xf86PciInfo.h introduces a bunch of errors...
|
||||
*/
|
||||
|
||||
/* General chip classes:
|
||||
* r100 includes R100, RV100, RV200, RS100, RS200, RS250.
|
||||
* r200 includes R200, RV250, RV280, RS300.
|
||||
* r300 includes R300, RV350, RV370.
|
||||
* (RS* denotes IGP)
|
||||
*/
|
||||
#define PCI_CHIP_RV380_3150 0x3150
|
||||
#define PCI_CHIP_RV380_3152 0x3152
|
||||
#define PCI_CHIP_RV380_3154 0x3154
|
||||
#define PCI_CHIP_RV380_3E50 0x3E50
|
||||
#define PCI_CHIP_RV380_3E54 0x3E54
|
||||
#define PCI_CHIP_RS100_4136 0x4136
|
||||
#define PCI_CHIP_RS200_4137 0x4137
|
||||
#define PCI_CHIP_R300_AD 0x4144
|
||||
#define PCI_CHIP_R300_AE 0x4145
|
||||
#define PCI_CHIP_R300_AF 0x4146
|
||||
#define PCI_CHIP_R300_AG 0x4147
|
||||
#define PCI_CHIP_R350_AH 0x4148
|
||||
#define PCI_CHIP_R350_AI 0x4149
|
||||
#define PCI_CHIP_R350_AJ 0x414A
|
||||
#define PCI_CHIP_R350_AK 0x414B
|
||||
#define PCI_CHIP_RV350_AP 0x4150
|
||||
#define PCI_CHIP_RV350_AQ 0x4151
|
||||
#define PCI_CHIP_RV350_AR 0x4152
|
||||
#define PCI_CHIP_RV350_AS 0x4153
|
||||
#define PCI_CHIP_RV350_AT 0x4154
|
||||
#define PCI_CHIP_RV350_AU 0x4155
|
||||
#define PCI_CHIP_RV350_AV 0x4156
|
||||
#define PCI_CHIP_RS250_4237 0x4237
|
||||
#define PCI_CHIP_R200_BB 0x4242
|
||||
#define PCI_CHIP_R200_BC 0x4243
|
||||
#define PCI_CHIP_RS100_4336 0x4336
|
||||
#define PCI_CHIP_RS200_4337 0x4337
|
||||
#define PCI_CHIP_RS250_4437 0x4437
|
||||
#define PCI_CHIP_RV250_If 0x4966
|
||||
#define PCI_CHIP_RV250_Ig 0x4967
|
||||
#define PCI_CHIP_R420_JH 0x4A48
|
||||
#define PCI_CHIP_R420_JI 0x4A49
|
||||
#define PCI_CHIP_R420_JJ 0x4A4A
|
||||
#define PCI_CHIP_R420_JK 0x4A4B
|
||||
#define PCI_CHIP_R420_JL 0x4A4C
|
||||
#define PCI_CHIP_R420_JM 0x4A4D
|
||||
#define PCI_CHIP_R420_JN 0x4A4E
|
||||
#define PCI_CHIP_R420_JO 0x4A4F
|
||||
#define PCI_CHIP_R420_JP 0x4A50
|
||||
#define PCI_CHIP_R420_JT 0x4A54
|
||||
#define PCI_CHIP_R481_4B49 0x4B49
|
||||
#define PCI_CHIP_R481_4B4A 0x4B4A
|
||||
#define PCI_CHIP_R481_4B4B 0x4B4B
|
||||
#define PCI_CHIP_R481_4B4C 0x4B4C
|
||||
#define PCI_CHIP_RADEON_LW 0x4C57
|
||||
#define PCI_CHIP_RADEON_LX 0x4C58
|
||||
#define PCI_CHIP_RADEON_LY 0x4C59
|
||||
#define PCI_CHIP_RADEON_LZ 0x4C5A
|
||||
#define PCI_CHIP_RV250_Ld 0x4C64
|
||||
#define PCI_CHIP_RV250_Lf 0x4C66
|
||||
#define PCI_CHIP_RV250_Lg 0x4C67
|
||||
#define PCI_CHIP_R300_ND 0x4E44
|
||||
#define PCI_CHIP_R300_NE 0x4E45
|
||||
#define PCI_CHIP_R300_NF 0x4E46
|
||||
#define PCI_CHIP_R300_NG 0x4E47
|
||||
#define PCI_CHIP_R350_NH 0x4E48
|
||||
#define PCI_CHIP_R350_NI 0x4E49
|
||||
#define PCI_CHIP_R360_NJ 0x4E4A
|
||||
#define PCI_CHIP_R350_NK 0x4E4B
|
||||
#define PCI_CHIP_RV350_NP 0x4E50
|
||||
#define PCI_CHIP_RV350_NQ 0x4E51
|
||||
#define PCI_CHIP_RV350_NR 0x4E52
|
||||
#define PCI_CHIP_RV350_NS 0x4E53
|
||||
#define PCI_CHIP_RV350_NT 0x4E54
|
||||
#define PCI_CHIP_RV350_NV 0x4E56
|
||||
#define PCI_CHIP_RADEON_QD 0x5144
|
||||
#define PCI_CHIP_RADEON_QE 0x5145
|
||||
#define PCI_CHIP_RADEON_QF 0x5146
|
||||
#define PCI_CHIP_RADEON_QG 0x5147
|
||||
#define PCI_CHIP_R200_QH 0x5148
|
||||
#define PCI_CHIP_R200_QL 0x514C
|
||||
#define PCI_CHIP_R200_QM 0x514D
|
||||
#define PCI_CHIP_RV200_QW 0x5157
|
||||
#define PCI_CHIP_RV200_QX 0x5158
|
||||
#define PCI_CHIP_RADEON_QY 0x5159
|
||||
#define PCI_CHIP_RADEON_QZ 0x515A
|
||||
#define PCI_CHIP_RN50_515E 0x515E
|
||||
#define PCI_CHIP_RV370_5460 0x5460
|
||||
#define PCI_CHIP_RV370_5462 0x5462
|
||||
#define PCI_CHIP_RV370_5464 0x5464
|
||||
#define PCI_CHIP_R423_UH 0x5548
|
||||
#define PCI_CHIP_R423_UI 0x5549
|
||||
#define PCI_CHIP_R423_UJ 0x554A
|
||||
#define PCI_CHIP_R423_UK 0x554B
|
||||
#define PCI_CHIP_R430_554C 0x554C
|
||||
#define PCI_CHIP_R430_554D 0x554D
|
||||
#define PCI_CHIP_R430_554E 0x554E
|
||||
#define PCI_CHIP_R430_554F 0x554F
|
||||
#define PCI_CHIP_R423_5550 0x5550
|
||||
#define PCI_CHIP_R423_UQ 0x5551
|
||||
#define PCI_CHIP_R423_UR 0x5552
|
||||
#define PCI_CHIP_R423_UT 0x5554
|
||||
#define PCI_CHIP_RV410_564A 0x564A
|
||||
#define PCI_CHIP_RV410_564B 0x564B
|
||||
#define PCI_CHIP_RV410_564F 0x564F
|
||||
#define PCI_CHIP_RV410_5652 0x5652
|
||||
#define PCI_CHIP_RV410_5653 0x5653
|
||||
#define PCI_CHIP_RS300_5834 0x5834
|
||||
#define PCI_CHIP_RS300_5835 0x5835
|
||||
#define PCI_CHIP_RS480_5954 0x5954
|
||||
#define PCI_CHIP_RS480_5955 0x5955
|
||||
#define PCI_CHIP_RV280_5960 0x5960
|
||||
#define PCI_CHIP_RV280_5961 0x5961
|
||||
#define PCI_CHIP_RV280_5962 0x5962
|
||||
#define PCI_CHIP_RV280_5964 0x5964
|
||||
#define PCI_CHIP_RV280_5965 0x5965
|
||||
#define PCI_CHIP_RN50_5969 0x5969
|
||||
#define PCI_CHIP_RS482_5974 0x5974
|
||||
#define PCI_CHIP_RS482_5975 0x5975
|
||||
#define PCI_CHIP_RS400_5A41 0x5A41
|
||||
#define PCI_CHIP_RS400_5A42 0x5A42
|
||||
#define PCI_CHIP_RC410_5A61 0x5A61
|
||||
#define PCI_CHIP_RC410_5A62 0x5A62
|
||||
#define PCI_CHIP_RV370_5B60 0x5B60
|
||||
#define PCI_CHIP_RV370_5B62 0x5B62
|
||||
#define PCI_CHIP_RV370_5B63 0x5B63
|
||||
#define PCI_CHIP_RV370_5B64 0x5B64
|
||||
#define PCI_CHIP_RV370_5B65 0x5B65
|
||||
#define PCI_CHIP_RV280_5C61 0x5C61
|
||||
#define PCI_CHIP_RV280_5C63 0x5C63
|
||||
#define PCI_CHIP_R430_5D48 0x5D48
|
||||
#define PCI_CHIP_R430_5D49 0x5D49
|
||||
#define PCI_CHIP_R430_5D4A 0x5D4A
|
||||
#define PCI_CHIP_R480_5D4C 0x5D4C
|
||||
#define PCI_CHIP_R480_5D4D 0x5D4D
|
||||
#define PCI_CHIP_R480_5D4E 0x5D4E
|
||||
#define PCI_CHIP_R480_5D4F 0x5D4F
|
||||
#define PCI_CHIP_R480_5D50 0x5D50
|
||||
#define PCI_CHIP_R480_5D52 0x5D52
|
||||
#define PCI_CHIP_R423_5D57 0x5D57
|
||||
#define PCI_CHIP_RV410_5E48 0x5E48
|
||||
#define PCI_CHIP_RV410_5E4A 0x5E4A
|
||||
#define PCI_CHIP_RV410_5E4B 0x5E4B
|
||||
#define PCI_CHIP_RV410_5E4C 0x5E4C
|
||||
#define PCI_CHIP_RV410_5E4D 0x5E4D
|
||||
#define PCI_CHIP_RV410_5E4F 0x5E4F
|
||||
#define PCI_CHIP_RS350_7834 0x7834
|
||||
#define PCI_CHIP_RS350_7835 0x7835
|
||||
|
||||
enum {
|
||||
CHIP_FAMILY_R100,
|
||||
CHIP_FAMILY_RV100,
|
||||
CHIP_FAMILY_RS100,
|
||||
CHIP_FAMILY_RV200,
|
||||
CHIP_FAMILY_RS200,
|
||||
CHIP_FAMILY_R200,
|
||||
CHIP_FAMILY_RV250,
|
||||
CHIP_FAMILY_RS300,
|
||||
CHIP_FAMILY_RV280,
|
||||
CHIP_FAMILY_R300,
|
||||
CHIP_FAMILY_R350,
|
||||
CHIP_FAMILY_RV350,
|
||||
CHIP_FAMILY_RV380,
|
||||
CHIP_FAMILY_R420,
|
||||
CHIP_FAMILY_RV410,
|
||||
CHIP_FAMILY_RS400,
|
||||
CHIP_FAMILY_LAST
|
||||
};
|
||||
|
||||
/* General classes of Radeons, as described above the device ID section */
|
||||
#define RADEON_CLASS_R100 (0 << 0)
|
||||
#define RADEON_CLASS_R200 (1 << 0)
|
||||
#define RADEON_CLASS_R300 (2 << 0)
|
||||
#define RADEON_CLASS_MASK (3 << 0)
|
||||
|
||||
#define RADEON_CHIPSET_TCL (1 << 2) /* tcl support - any radeon */
|
||||
#define RADEON_CHIPSET_BROKEN_STENCIL (1 << 3) /* r100 stencil bug */
|
||||
#define R200_CHIPSET_YCBCR_BROKEN (1 << 4) /* r200 ycbcr bug */
|
||||
|
||||
#endif /* _RADEON_CHIPSET_H */
|
1104
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/radeon_screen.c
vendored
Normal file
1104
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/radeon_screen.c
vendored
Normal file
File diff suppressed because it is too large
Load diff
115
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/radeon_screen.h
vendored
Normal file
115
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/radeon_screen.h
vendored
Normal file
|
@ -0,0 +1,115 @@
|
|||
/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_screen.h,v 1.5 2002/12/16 16:18:58 dawes Exp $ */
|
||||
/**************************************************************************
|
||||
|
||||
Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
|
||||
VA Linux Systems Inc., Fremont, California.
|
||||
|
||||
All Rights Reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice (including the
|
||||
next paragraph) shall be included in all copies or substantial
|
||||
portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
**************************************************************************/
|
||||
|
||||
/*
|
||||
* Authors:
|
||||
* Kevin E. Martin <martin@valinux.com>
|
||||
* Gareth Hughes <gareth@valinux.com>
|
||||
*/
|
||||
|
||||
#ifndef __RADEON_SCREEN_H__
|
||||
#define __RADEON_SCREEN_H__
|
||||
|
||||
/*
|
||||
* IMPORTS: these headers contain all the DRI, X and kernel-related
|
||||
* definitions that we need.
|
||||
*/
|
||||
#include "dri_util.h"
|
||||
#include "radeon_dri.h"
|
||||
#include "radeon_chipset.h"
|
||||
#include "radeon_reg.h"
|
||||
#include "drm_sarea.h"
|
||||
#include "xmlconfig.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
drm_handle_t handle; /* Handle to the DRM region */
|
||||
drmSize size; /* Size of the DRM region */
|
||||
drmAddress map; /* Mapping of the DRM region */
|
||||
} radeonRegionRec, *radeonRegionPtr;
|
||||
|
||||
typedef struct {
|
||||
int chip_family;
|
||||
int chip_flags;
|
||||
int cpp;
|
||||
int card_type;
|
||||
int AGPMode;
|
||||
unsigned int irq; /* IRQ number (0 means none) */
|
||||
|
||||
unsigned int fbLocation;
|
||||
unsigned int frontOffset;
|
||||
unsigned int frontPitch;
|
||||
unsigned int backOffset;
|
||||
unsigned int backPitch;
|
||||
|
||||
unsigned int depthOffset;
|
||||
unsigned int depthPitch;
|
||||
|
||||
/* Shared texture data */
|
||||
int numTexHeaps;
|
||||
int texOffset[RADEON_NR_TEX_HEAPS];
|
||||
int texSize[RADEON_NR_TEX_HEAPS];
|
||||
int logTexGranularity[RADEON_NR_TEX_HEAPS];
|
||||
|
||||
radeonRegionRec mmio;
|
||||
radeonRegionRec status;
|
||||
radeonRegionRec gartTextures;
|
||||
|
||||
drmBufMapPtr buffers;
|
||||
|
||||
__volatile__ u_int32_t *scratch;
|
||||
|
||||
__DRIscreenPrivate *driScreen;
|
||||
unsigned int sarea_priv_offset;
|
||||
unsigned int gart_buffer_offset; /* offset in card memory space */
|
||||
unsigned int gart_texture_offset; /* offset in card memory space */
|
||||
unsigned int gart_base;
|
||||
|
||||
GLboolean drmSupportsCubeMapsR200; /* need radeon kernel module >= 1.7 */
|
||||
GLboolean drmSupportsBlendColor; /* need radeon kernel module >= 1.11 */
|
||||
GLboolean drmSupportsTriPerf; /* need radeon kernel module >= 1.16 */
|
||||
GLboolean drmSupportsFragShader; /* need radeon kernel module >= 1.18 */
|
||||
GLboolean drmSupportsPointSprites; /* need radeon kernel module >= 1.13 */
|
||||
GLboolean drmSupportsCubeMapsR100; /* need radeon kernel module >= 1.15 */
|
||||
GLboolean drmSupportsVertexProgram; /* need radeon kernel module >= 1.25 */
|
||||
GLboolean depthHasSurface;
|
||||
|
||||
/* Configuration cache with default values for all contexts */
|
||||
driOptionCache optionCache;
|
||||
} radeonScreenRec, *radeonScreenPtr;
|
||||
|
||||
#define IS_R100_CLASS(screen) \
|
||||
((screen->chip_flags & RADEON_CLASS_MASK) == RADEON_CLASS_R100)
|
||||
#define IS_R200_CLASS(screen) \
|
||||
((screen->chip_flags & RADEON_CLASS_MASK) == RADEON_CLASS_R200)
|
||||
#define IS_R300_CLASS(screen) \
|
||||
((screen->chip_flags & RADEON_CLASS_MASK) == RADEON_CLASS_R300)
|
||||
|
||||
#endif /* __RADEON_SCREEN_H__ */
|
50
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/radeon_span.h
vendored
Normal file
50
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/radeon_span.h
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
/**************************************************************************
|
||||
|
||||
Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
|
||||
VA Linux Systems Inc., Fremont, California.
|
||||
Copyright (C) The Weather Channel, Inc. 2002. All Rights Reserved.
|
||||
|
||||
The Weather Channel (TM) funded Tungsten Graphics to develop the
|
||||
initial release of the Radeon 8500 driver under the XFree86 license.
|
||||
This notice must be preserved.
|
||||
|
||||
All Rights Reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice (including the
|
||||
next paragraph) shall be included in all copies or substantial
|
||||
portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
**************************************************************************/
|
||||
|
||||
/*
|
||||
* Authors:
|
||||
* Gareth Hughes <gareth@valinux.com>
|
||||
* Keith Whitwell <keith@tungstengraphics.com>
|
||||
* Kevin E. Martin <martin@valinux.com>
|
||||
*/
|
||||
|
||||
#ifndef __RADEON_SPAN_H__
|
||||
#define __RADEON_SPAN_H__
|
||||
|
||||
#include "drirenderbuffer.h"
|
||||
|
||||
extern void radeonInitSpanFuncs(GLcontext * ctx);
|
||||
extern void radeonSetSpanFunctions(driRenderbuffer * rb, const GLvisual * vis);
|
||||
|
||||
#endif
|
209
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon.h
vendored
Normal file
209
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon.h
vendored
Normal file
|
@ -0,0 +1,209 @@
|
|||
/**
|
||||
* \file server/radeon.h
|
||||
* \brief Radeon 2D driver data structures.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
|
||||
* VA Linux Systems Inc., Fremont, California.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation on the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial
|
||||
* portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NON-INFRINGEMENT. IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR
|
||||
* THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h,v 1.29 2002/10/12 01:38:07 martin Exp $ */
|
||||
|
||||
#ifndef _RADEON_H_
|
||||
#define _RADEON_H_
|
||||
|
||||
#include "xf86drm.h" /* drm_handle_t, etc */
|
||||
|
||||
# define RADEON_AGP_1X_MODE 0x01
|
||||
# define RADEON_AGP_2X_MODE 0x02
|
||||
# define RADEON_AGP_4X_MODE 0x04
|
||||
# define RADEON_AGP_FW_MODE 0x10
|
||||
# define RADEON_AGP_MODE_MASK 0x17
|
||||
#define RADEON_CP_CSQ_CNTL 0x0740
|
||||
# define RADEON_CSQ_CNT_PRIMARY_MASK (0xff << 0)
|
||||
# define RADEON_CSQ_PRIDIS_INDDIS (0 << 28)
|
||||
# define RADEON_CSQ_PRIPIO_INDDIS (1 << 28)
|
||||
# define RADEON_CSQ_PRIBM_INDDIS (2 << 28)
|
||||
# define RADEON_CSQ_PRIPIO_INDBM (3 << 28)
|
||||
# define RADEON_CSQ_PRIBM_INDBM (4 << 28)
|
||||
# define RADEON_CSQ_PRIPIO_INDPIO (15 << 28)
|
||||
|
||||
#define RADEON_PCIGART_TABLE_SIZE 32768
|
||||
|
||||
#define PCI_CHIP_R200_BB 0x4242
|
||||
#define PCI_CHIP_RV250_Id 0x4964
|
||||
#define PCI_CHIP_RV250_Ie 0x4965
|
||||
#define PCI_CHIP_RV250_If 0x4966
|
||||
#define PCI_CHIP_RV250_Ig 0x4967
|
||||
#define PCI_CHIP_RADEON_LW 0x4C57
|
||||
#define PCI_CHIP_RADEON_LX 0x4C58
|
||||
#define PCI_CHIP_RADEON_LY 0x4C59
|
||||
#define PCI_CHIP_RADEON_LZ 0x4C5A
|
||||
#define PCI_CHIP_RV250_Ld 0x4C64
|
||||
#define PCI_CHIP_RV250_Le 0x4C65
|
||||
#define PCI_CHIP_RV250_Lf 0x4C66
|
||||
#define PCI_CHIP_RV250_Lg 0x4C67
|
||||
#define PCI_CHIP_R300_ND 0x4E44
|
||||
#define PCI_CHIP_R300_NE 0x4E45
|
||||
#define PCI_CHIP_R300_NF 0x4E46
|
||||
#define PCI_CHIP_R300_NG 0x4E47
|
||||
#define PCI_CHIP_RADEON_QD 0x5144
|
||||
#define PCI_CHIP_RADEON_QE 0x5145
|
||||
#define PCI_CHIP_RADEON_QF 0x5146
|
||||
#define PCI_CHIP_RADEON_QG 0x5147
|
||||
#define PCI_CHIP_R200_QL 0x514C
|
||||
#define PCI_CHIP_R200_QN 0x514E
|
||||
#define PCI_CHIP_R200_QO 0x514F
|
||||
#define PCI_CHIP_RV200_QW 0x5157
|
||||
#define PCI_CHIP_RV200_QX 0x5158
|
||||
#define PCI_CHIP_RADEON_QY 0x5159
|
||||
#define PCI_CHIP_RADEON_QZ 0x515A
|
||||
#define PCI_CHIP_R200_Ql 0x516C
|
||||
#define PCI_CHIP_RV370_5460 0x5460
|
||||
#define PCI_CHIP_RV280_Y_ 0x5960
|
||||
#define PCI_CHIP_RV280_Ya 0x5961
|
||||
#define PCI_CHIP_RV280_Yb 0x5962
|
||||
#define PCI_CHIP_RV280_Yc 0x5963
|
||||
|
||||
/**
|
||||
* \brief Chip families.
|
||||
*/
|
||||
typedef enum {
|
||||
CHIP_FAMILY_UNKNOW,
|
||||
CHIP_FAMILY_LEGACY,
|
||||
CHIP_FAMILY_R128,
|
||||
CHIP_FAMILY_M3,
|
||||
CHIP_FAMILY_RADEON,
|
||||
CHIP_FAMILY_VE,
|
||||
CHIP_FAMILY_M6,
|
||||
CHIP_FAMILY_RV200,
|
||||
CHIP_FAMILY_M7,
|
||||
CHIP_FAMILY_R200,
|
||||
CHIP_FAMILY_RV250,
|
||||
CHIP_FAMILY_M9,
|
||||
CHIP_FAMILY_RV280,
|
||||
CHIP_FAMILY_R300,
|
||||
CHIP_FAMILY_R350,
|
||||
CHIP_FAMILY_RV350,
|
||||
CHIP_FAMILY_RV380, /* RV370/RV380/M22/M24 */
|
||||
CHIP_FAMILY_R420, /* R420/R423/M18 */
|
||||
} RADEONChipFamily;
|
||||
|
||||
|
||||
typedef unsigned long memType;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Radeon DDX driver private data.
|
||||
*/
|
||||
typedef struct {
|
||||
int Chipset; /**< \brief Chipset number */
|
||||
RADEONChipFamily ChipFamily; /**< \brief Chip family */
|
||||
|
||||
unsigned long LinearAddr; /**< \brief Frame buffer physical address */
|
||||
|
||||
|
||||
drmSize registerSize; /**< \brief MMIO register map size */
|
||||
drm_handle_t registerHandle; /**< \brief MMIO register map handle */
|
||||
|
||||
int IsPCI; /* Current card is a PCI card */
|
||||
|
||||
/**
|
||||
* \name AGP
|
||||
*/
|
||||
/*@{*/
|
||||
drmSize gartSize; /**< \brief AGP map size */
|
||||
drm_handle_t gartMemHandle; /**< \brief AGP map handle */
|
||||
unsigned long gartOffset; /**< \brief AGP offset */
|
||||
int gartMode; /**< \brief AGP mode */
|
||||
int gartFastWrite;
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name CP ring buffer data
|
||||
*/
|
||||
/*@{*/
|
||||
unsigned long ringStart; /**< \brief Offset into AGP space */
|
||||
drm_handle_t ringHandle; /**< \brief Handle from drmAddMap() */
|
||||
drmSize ringMapSize; /**< \brief Size of map */
|
||||
int ringSize; /**< \brief Size of ring (in MB) */
|
||||
|
||||
unsigned long ringReadOffset; /**< \brief Read offset into AGP space */
|
||||
drm_handle_t ringReadPtrHandle;/**< \brief Handle from drmAddMap() */
|
||||
drmSize ringReadMapSize; /**< \brief Size of map */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name CP vertex/indirect buffer data
|
||||
*/
|
||||
/*@{*/
|
||||
unsigned long bufStart; /**< \brief Offset into AGP space */
|
||||
drm_handle_t bufHandle; /**< \brief Handle from drmAddMap() */
|
||||
drmSize bufMapSize; /**< \brief Size of map */
|
||||
int bufSize; /**< \brief Size of buffers (in MB) */
|
||||
int bufNumBufs; /**< \brief Number of buffers */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name CP AGP Texture data
|
||||
*/
|
||||
/*@{*/
|
||||
unsigned long gartTexStart; /**< \brief Offset into AGP space */
|
||||
drm_handle_t gartTexHandle; /**< \brief Handle from drmAddMap() */
|
||||
drmSize gartTexMapSize; /**< \brief Size of map */
|
||||
int gartTexSize; /**< \brief Size of AGP tex space (in MB) */
|
||||
int log2GARTTexGran;
|
||||
/*@}*/
|
||||
|
||||
int drmMinor; /**< \brief DRM device minor number */
|
||||
|
||||
int frontOffset; /**< \brief Front color buffer offset */
|
||||
int frontPitch; /**< \brief Front color buffer pitch */
|
||||
int backOffset; /**< \brief Back color buffer offset */
|
||||
int backPitch; /**< \brief Back color buffer pitch */
|
||||
int depthOffset; /**< \brief Depth buffer offset */
|
||||
int depthPitch; /**< \brief Depth buffer pitch */
|
||||
int textureOffset; /**< \brief Texture area offset */
|
||||
int textureSize; /**< \brief Texture area size */
|
||||
int log2TexGran; /**< \brief Texture granularity in base 2 log */
|
||||
|
||||
unsigned int frontPitchOffset;
|
||||
unsigned int backPitchOffset;
|
||||
unsigned int depthPitchOffset;
|
||||
|
||||
int colorTiling; /**< \brief Enable color tiling */
|
||||
|
||||
int irq; /**< \brief IRQ number */
|
||||
int page_flip_enable; /**< \brief Page Flip enable */
|
||||
unsigned int gen_int_cntl;
|
||||
unsigned int crtc_offset_cntl;
|
||||
|
||||
unsigned long pcieGartTableOffset;
|
||||
} RADEONInfoRec, *RADEONInfoPtr;
|
||||
|
||||
|
||||
#endif /* _RADEON_H_ */
|
1337
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon_dri.c
vendored
Normal file
1337
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon_dri.c
vendored
Normal file
File diff suppressed because it is too large
Load diff
116
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon_dri.h
vendored
Normal file
116
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon_dri.h
vendored
Normal file
|
@ -0,0 +1,116 @@
|
|||
/**
|
||||
* \file server/radeon_dri.h
|
||||
* \brief Radeon server-side structures.
|
||||
*
|
||||
* \author Kevin E. Martin <martin@xfree86.org>
|
||||
* \author Rickard E. Faith <faith@valinux.com>
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright 2000 ATI Technologies Inc., Markham, Ontario,
|
||||
* VA Linux Systems Inc., Fremont, California.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation on the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial
|
||||
* portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NON-INFRINGEMENT. IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR
|
||||
* THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.h,v 1.3 2002/04/24 16:20:40 martin Exp $ */
|
||||
|
||||
#ifndef _RADEON_DRI_
|
||||
#define _RADEON_DRI_
|
||||
|
||||
#include "xf86drm.h"
|
||||
#include "drm.h"
|
||||
#include "radeon_drm.h"
|
||||
|
||||
/* DRI Driver defaults */
|
||||
#define RADEON_DEFAULT_CP_PIO_MODE RADEON_CSQ_PRIPIO_INDPIO
|
||||
#define RADEON_DEFAULT_CP_BM_MODE RADEON_CSQ_PRIBM_INDBM
|
||||
#define RADEON_DEFAULT_AGP_MODE 1
|
||||
#define RADEON_DEFAULT_AGP_FAST_WRITE 0
|
||||
#define RADEON_DEFAULT_AGP_SIZE 8 /* MB (must be 2^n and > 4MB) */
|
||||
#define RADEON_DEFAULT_RING_SIZE 1 /* MB (must be page aligned) */
|
||||
#define RADEON_DEFAULT_BUFFER_SIZE 2 /* MB (must be page aligned) */
|
||||
#define RADEON_DEFAULT_AGP_TEX_SIZE 1 /* MB (must be page aligned) */
|
||||
#define RADEON_DEFAULT_CP_TIMEOUT 10000 /* usecs */
|
||||
#define RADEON_DEFAULT_PAGE_FLIP 0 /* page flipping diabled */
|
||||
#define RADEON_BUFFER_ALIGN 0x00000fff
|
||||
|
||||
/**
|
||||
* \brief Radeon DRI driver private data.
|
||||
*/
|
||||
typedef struct {
|
||||
/**
|
||||
* \name DRI screen private data
|
||||
*/
|
||||
/*@{*/
|
||||
int deviceID; /**< \brief PCI device ID */
|
||||
int width; /**< \brief width in pixels of display */
|
||||
int height; /**< \brief height in scanlines of display */
|
||||
int depth; /**< \brief depth of display (8, 15, 16, 24) */
|
||||
int bpp; /**< \brief bit depth of display (8, 16, 24, 32) */
|
||||
|
||||
int IsPCI; /**< \brief is current card a PCI card? */
|
||||
int AGPMode; /**< \brief AGP mode */
|
||||
|
||||
int frontOffset; /**< \brief front buffer offset */
|
||||
int frontPitch; /**< \brief front buffer pitch */
|
||||
int backOffset; /**< \brief shared back buffer offset */
|
||||
int backPitch; /**< \brief shared back buffer pitch */
|
||||
int depthOffset; /**< \brief shared depth buffer offset */
|
||||
int depthPitch; /**< \brief shared depth buffer pitch */
|
||||
int textureOffset; /**< \brief start of texture data in frame buffer */
|
||||
int textureSize; /**< \brief size of texture date */
|
||||
int log2TexGran; /**< \brief log2 texture granularity */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name MMIO register data
|
||||
*/
|
||||
/*@{*/
|
||||
drm_handle_t registerHandle; /**< \brief MMIO register map size */
|
||||
drmSize registerSize; /**< \brief MMIO register map handle */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name CP in-memory status information
|
||||
*/
|
||||
/*@{*/
|
||||
drm_handle_t statusHandle; /**< \brief status map handle */
|
||||
drmSize statusSize; /**< \brief status map size */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name CP AGP Texture data
|
||||
*/
|
||||
/*@{*/
|
||||
drm_handle_t gartTexHandle; /**< \brief AGP texture area map handle */
|
||||
drmSize gartTexMapSize; /**< \brief AGP texture area map size */
|
||||
int log2GARTTexGran; /**< \brief AGP texture granularity in log base 2 */
|
||||
int gartTexOffset; /**< \brief AGP texture area offset in AGP space */
|
||||
/*@}*/
|
||||
|
||||
unsigned int sarea_priv_offset; /**< \brief offset of the private SAREA data*/
|
||||
} RADEONDRIRec, *RADEONDRIPtr;
|
||||
|
||||
#endif
|
1088
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon_egl.c
vendored
Normal file
1088
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon_egl.c
vendored
Normal file
File diff suppressed because it is too large
Load diff
129
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon_macros.h
vendored
Normal file
129
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon_macros.h
vendored
Normal file
|
@ -0,0 +1,129 @@
|
|||
/**
|
||||
* \file server/radeon_macros.h
|
||||
* \brief Macros for Radeon MMIO operation.
|
||||
*
|
||||
* \authors Kevin E. Martin <martin@xfree86.org>
|
||||
* \authors Rickard E. Faith <faith@valinux.com>
|
||||
* \authors Alan Hourihane <alanh@fairlite.demon.co.uk>
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
|
||||
* VA Linux Systems Inc., Fremont, California.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation on the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial
|
||||
* portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NON-INFRINGEMENT. IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR
|
||||
* THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h,v 1.20 2002/10/12 01:38:07 martin Exp $ */
|
||||
|
||||
#ifndef _RADEON_MACROS_H_
|
||||
#define _RADEON_MACROS_H_
|
||||
|
||||
#include <mmio.h>
|
||||
|
||||
# define MMIO_IN8(base, offset) \
|
||||
*(volatile unsigned char *)(((unsigned char*)(base)) + (offset))
|
||||
# define MMIO_IN32(base, offset) \
|
||||
read_MMIO_LE32(base, offset)
|
||||
# define MMIO_OUT8(base, offset, val) \
|
||||
*(volatile unsigned char *)(((unsigned char*)(base)) + (offset)) = (val)
|
||||
# define MMIO_OUT32(base, offset, val) \
|
||||
*(volatile unsigned int *)(void *)(((unsigned char*)(base)) + (offset)) = CPU_TO_LE32(val)
|
||||
|
||||
|
||||
/* Memory mapped register access macros */
|
||||
#define INREG8(addr) MMIO_IN8(RADEONMMIO, addr)
|
||||
#define INREG(addr) MMIO_IN32(RADEONMMIO, addr)
|
||||
#define OUTREG8(addr, val) MMIO_OUT8(RADEONMMIO, addr, val)
|
||||
#define OUTREG(addr, val) MMIO_OUT32(RADEONMMIO, addr, val)
|
||||
|
||||
#define ADDRREG(addr) ((volatile GLuint *)(pointer)(RADEONMMIO + (addr)))
|
||||
|
||||
|
||||
#define OUTREGP(addr, val, mask) \
|
||||
do { \
|
||||
GLuint tmp = INREG(addr); \
|
||||
tmp &= (mask); \
|
||||
tmp |= (val); \
|
||||
OUTREG(addr, tmp); \
|
||||
} while (0)
|
||||
|
||||
#define INPLL(dpy, addr) RADEONINPLL(dpy, addr)
|
||||
|
||||
#define OUTPLL(addr, val) \
|
||||
do { \
|
||||
OUTREG8(RADEON_CLOCK_CNTL_INDEX, (((addr) & 0x3f) | \
|
||||
RADEON_PLL_WR_EN)); \
|
||||
OUTREG(RADEON_CLOCK_CNTL_DATA, val); \
|
||||
} while (0)
|
||||
|
||||
#define OUTPLLP(dpy, addr, val, mask) \
|
||||
do { \
|
||||
GLuint tmp = INPLL(dpy, addr); \
|
||||
tmp &= (mask); \
|
||||
tmp |= (val); \
|
||||
OUTPLL(addr, tmp); \
|
||||
} while (0)
|
||||
|
||||
#define OUTPAL_START(idx) \
|
||||
do { \
|
||||
OUTREG8(RADEON_PALETTE_INDEX, (idx)); \
|
||||
} while (0)
|
||||
|
||||
#define OUTPAL_NEXT(r, g, b) \
|
||||
do { \
|
||||
OUTREG(RADEON_PALETTE_DATA, ((r) << 16) | ((g) << 8) | (b)); \
|
||||
} while (0)
|
||||
|
||||
#define OUTPAL_NEXT_CARD32(v) \
|
||||
do { \
|
||||
OUTREG(RADEON_PALETTE_DATA, (v & 0x00ffffff)); \
|
||||
} while (0)
|
||||
|
||||
#define OUTPAL(idx, r, g, b) \
|
||||
do { \
|
||||
OUTPAL_START((idx)); \
|
||||
OUTPAL_NEXT((r), (g), (b)); \
|
||||
} while (0)
|
||||
|
||||
#define INPAL_START(idx) \
|
||||
do { \
|
||||
OUTREG(RADEON_PALETTE_INDEX, (idx) << 16); \
|
||||
} while (0)
|
||||
|
||||
#define INPAL_NEXT() INREG(RADEON_PALETTE_DATA)
|
||||
|
||||
#define PAL_SELECT(idx) \
|
||||
do { \
|
||||
if (!idx) { \
|
||||
OUTREG(RADEON_DAC_CNTL2, INREG(RADEON_DAC_CNTL2) & \
|
||||
(GLuint)~RADEON_DAC2_PALETTE_ACC_CTL); \
|
||||
} else { \
|
||||
OUTREG(RADEON_DAC_CNTL2, INREG(RADEON_DAC_CNTL2) | \
|
||||
RADEON_DAC2_PALETTE_ACC_CTL); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
#endif
|
2144
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon_reg.h
vendored
Normal file
2144
reactos/dll/3rdparty/mesa32/src/drivers/dri/r300/server/radeon_reg.h
vendored
Normal file
File diff suppressed because it is too large
Load diff
|
@ -53,6 +53,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "r200_context.h"
|
||||
#include "r200_ioctl.h"
|
||||
#include "r200_span.h"
|
||||
#include "r200_tex.h"
|
||||
#elif RADEON_COMMON && defined(RADEON_COMMON_FOR_R300)
|
||||
#include "r300_context.h"
|
||||
#include "r300_fragprog.h"
|
||||
|
@ -973,7 +974,8 @@ static const struct __DriverAPIRec r200API = {
|
|||
.WaitForMSC = driWaitForMSC32,
|
||||
.WaitForSBC = NULL,
|
||||
.SwapBuffersMSC = NULL,
|
||||
.CopySubBuffer = r200CopySubBuffer
|
||||
.CopySubBuffer = r200CopySubBuffer,
|
||||
.setTexOffset = r200SetTexOffset
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -733,14 +733,15 @@ void viaXMesaWindowMoved(struct via_context *vmesa)
|
|||
{
|
||||
__DRIdrawablePrivate *const drawable = vmesa->driDrawable;
|
||||
__DRIdrawablePrivate *const readable = vmesa->driReadable;
|
||||
struct via_renderbuffer *const draw_buffer =
|
||||
(struct via_renderbuffer *) drawable->driverPrivate;
|
||||
struct via_renderbuffer *const read_buffer =
|
||||
(struct via_renderbuffer *) readable->driverPrivate;
|
||||
struct via_renderbuffer * draw_buffer;
|
||||
struct via_renderbuffer * read_buffer;
|
||||
GLuint bytePerPixel = vmesa->viaScreen->bitsPerPixel >> 3;
|
||||
|
||||
if (!drawable)
|
||||
return;
|
||||
|
||||
draw_buffer = (struct via_renderbuffer *) drawable->driverPrivate;
|
||||
read_buffer = (struct via_renderbuffer *) readable->driverPrivate;
|
||||
|
||||
switch (vmesa->glCtx->DrawBuffer->_ColorDrawBufferMask[0]) {
|
||||
case BUFFER_BIT_BACK_LEFT:
|
||||
|
|
|
@ -625,13 +625,12 @@ static void viaFastRenderClippedPoly(GLcontext *ctx, const GLuint *elts,
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/* Choose render functions */
|
||||
/**********************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
#define _VIA_NEW_VERTEX (_NEW_TEXTURE | \
|
||||
_DD_NEW_SEPARATE_SPECULAR | \
|
||||
_DD_NEW_TRI_UNFILLED | \
|
||||
|
@ -665,14 +664,17 @@ static void viaChooseRenderState(GLcontext *ctx)
|
|||
vmesa->drawTri = via_draw_triangle;
|
||||
}
|
||||
|
||||
if (flags & (ANY_FALLBACK_FLAGS|ANY_RASTER_FLAGS)) {
|
||||
if (flags & DD_TRI_LIGHT_TWOSIDE) index |= VIA_TWOSIDE_BIT;
|
||||
if (flags & DD_TRI_OFFSET) index |= VIA_OFFSET_BIT;
|
||||
if (flags & DD_TRI_UNFILLED) index |= VIA_UNFILLED_BIT;
|
||||
if (flags & ANY_FALLBACK_FLAGS) index |= VIA_FALLBACK_BIT;
|
||||
if (flags & (ANY_FALLBACK_FLAGS | ANY_RASTER_FLAGS)) {
|
||||
if (ctx->Light.Enabled && ctx->Light.Model.TwoSide)
|
||||
index |= VIA_TWOSIDE_BIT;
|
||||
if (ctx->Polygon.FrontMode != GL_FILL || ctx->Polygon.BackMode != GL_FILL)
|
||||
index |= VIA_UNFILLED_BIT;
|
||||
if (flags & DD_TRI_OFFSET)
|
||||
index |= VIA_OFFSET_BIT;
|
||||
if (flags & ANY_FALLBACK_FLAGS)
|
||||
index |= VIA_FALLBACK_BIT;
|
||||
|
||||
/* Hook in fallbacks for specific primitives.
|
||||
*/
|
||||
/* Hook in fallbacks for specific primitives. */
|
||||
if (flags & POINT_FALLBACK)
|
||||
vmesa->drawPoint = via_fallback_point;
|
||||
|
||||
|
@ -683,11 +685,8 @@ static void viaChooseRenderState(GLcontext *ctx)
|
|||
vmesa->drawTri = via_fallback_tri;
|
||||
}
|
||||
|
||||
|
||||
if ((flags & DD_SEPARATE_SPECULAR) &&
|
||||
ctx->Light.ShadeModel == GL_FLAT) {
|
||||
if ((flags & DD_SEPARATE_SPECULAR) && ctx->Light.ShadeModel == GL_FLAT)
|
||||
index = VIA_MAX_TRIFUNC; /* flat specular */
|
||||
}
|
||||
|
||||
if (vmesa->renderIndex != index) {
|
||||
vmesa->renderIndex = index;
|
||||
|
|
|
@ -458,23 +458,84 @@ static void write_rgba_span_front(const GLcontext *ctx,
|
|||
const GLubyte rgba[][4],
|
||||
const GLubyte mask[] )
|
||||
{
|
||||
WMesaContext pwc = wmesa_context(ctx);
|
||||
GLuint i;
|
||||
|
||||
(void) ctx;
|
||||
y=FLIP(y);
|
||||
if (mask) {
|
||||
for (i=0; i<n; i++)
|
||||
if (mask[i])
|
||||
SetPixel(pwc->hDC, x+i, y, RGB(rgba[i][RCOMP], rgba[i][GCOMP],
|
||||
rgba[i][BCOMP]));
|
||||
}
|
||||
else {
|
||||
for (i=0; i<n; i++)
|
||||
SetPixel(pwc->hDC, x+i, y, RGB(rgba[i][RCOMP], rgba[i][GCOMP],
|
||||
rgba[i][BCOMP]));
|
||||
}
|
||||
|
||||
WMesaContext pwc = wmesa_context(ctx);
|
||||
WMesaFramebuffer pwfb = wmesa_lookup_framebuffer(pwc->hDC);
|
||||
CONST BITMAPINFO bmi=
|
||||
{
|
||||
{
|
||||
sizeof(BITMAPINFOHEADER),
|
||||
n, 1, 1, 32, BI_RGB, 0, 1, 1, 0, 0
|
||||
}
|
||||
};
|
||||
HBITMAP bmp=0;
|
||||
HDC mdc=0;
|
||||
typedef union
|
||||
{
|
||||
unsigned i;
|
||||
struct {
|
||||
unsigned b:8, g:8, r:8, a:8;
|
||||
};
|
||||
} BGRA;
|
||||
BGRA *bgra, c;
|
||||
int i;
|
||||
|
||||
if (n < 16) { // the value 16 is just guessed
|
||||
y=FLIP(y);
|
||||
if (mask) {
|
||||
for (i=0; i<n; i++)
|
||||
if (mask[i])
|
||||
SetPixel(pwc->hDC, x+i, y,
|
||||
RGB(rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP]));
|
||||
}
|
||||
else {
|
||||
for (i=0; i<n; i++)
|
||||
SetPixel(pwc->hDC, x+i, y,
|
||||
RGB(rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP]));
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!pwfb) {
|
||||
_mesa_problem(NULL, "wmesa: write_rgba_span_front on unknown hdc");
|
||||
return;
|
||||
}
|
||||
bgra=malloc(n*sizeof(BGRA));
|
||||
if (!bgra) {
|
||||
_mesa_problem(NULL, "wmesa: write_rgba_span_front: out of memory");
|
||||
return;
|
||||
}
|
||||
c.a=0;
|
||||
if (mask) {
|
||||
for (i=0; i<n; i++) {
|
||||
if (mask[i]) {
|
||||
c.r=rgba[i][RCOMP];
|
||||
c.g=rgba[i][GCOMP];
|
||||
c.b=rgba[i][BCOMP];
|
||||
c.a=rgba[i][ACOMP];
|
||||
bgra[i]=c;
|
||||
}
|
||||
else
|
||||
bgra[i].i=0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (i=0; i<n; i++) {
|
||||
c.r=rgba[i][RCOMP];
|
||||
c.g=rgba[i][GCOMP];
|
||||
c.b=rgba[i][BCOMP];
|
||||
c.a=rgba[i][ACOMP];
|
||||
bgra[i]=c;
|
||||
}
|
||||
}
|
||||
bmp=CreateBitmap(n, 1, 1, 32, bgra);
|
||||
mdc=CreateCompatibleDC(pwfb->hDC);
|
||||
SelectObject(mdc, bmp);
|
||||
y=FLIP(y);
|
||||
BitBlt(pwfb->hDC, x, y, n, 1, mdc, 0, 0, SRCCOPY);
|
||||
SelectObject(mdc, 0);
|
||||
DeleteObject(bmp);
|
||||
DeleteDC(mdc);
|
||||
free(bgra);
|
||||
}
|
||||
}
|
||||
|
||||
/* Write a horizontal span of RGB color pixels with a boolean mask. */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
DESCRIPTION 'Mesa (OpenGL driver) for Win32'
|
||||
VERSION 6.1
|
||||
VERSION 7.0
|
||||
|
||||
EXPORTS
|
||||
;
|
||||
|
|
|
@ -159,7 +159,6 @@ index_mask( GLcontext *ctx, GLuint mask )
|
|||
m = (unsigned long) mask;
|
||||
}
|
||||
XMesaSetPlaneMask( xmesa->display, xmbuf->cleargc, m );
|
||||
XMesaSetPlaneMask( xmesa->display, xmbuf->gc, m );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -191,7 +190,6 @@ color_mask(GLcontext *ctx,
|
|||
if (bmask) m |= GET_BLUEMASK(xmesa->xm_visual);
|
||||
}
|
||||
XMesaSetPlaneMask( xmesa->display, xmbuf->cleargc, m );
|
||||
XMesaSetPlaneMask( xmesa->display, xmbuf->gc, m );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -450,13 +448,13 @@ xmesa_DrawPixels_8R8G8B( GLcontext *ctx,
|
|||
ctx->_ImageTransferState == 0 && /* no color tables, scale/bias, etc */
|
||||
ctx->Pixel.ZoomX == 1.0 && /* no zooming */
|
||||
ctx->Pixel.ZoomY == 1.0 &&
|
||||
xrb->pixmap &&
|
||||
xrb->pixmap && /* drawing to pixmap or window */
|
||||
xrb->Base.AlphaBits == 0)
|
||||
{
|
||||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer);
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
const XMesaGC gc = xmbuf->gc;
|
||||
const XMesaGC gc = xmbuf->cleargc; /* effected by glColorMask */
|
||||
int dstX = x;
|
||||
int dstY = y;
|
||||
int w = width;
|
||||
|
@ -551,7 +549,7 @@ xmesa_DrawPixels_5R6G5B( GLcontext *ctx,
|
|||
const SWcontext *swrast = SWRAST_CONTEXT( ctx );
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer);
|
||||
const XMesaGC gc = xmbuf->gc;
|
||||
const XMesaGC gc = xmbuf->cleargc; /* effected by glColorMask */
|
||||
|
||||
ASSERT(dpy);
|
||||
ASSERT(gc);
|
||||
|
@ -560,7 +558,7 @@ xmesa_DrawPixels_5R6G5B( GLcontext *ctx,
|
|||
if (swrast->NewState)
|
||||
_swrast_validate_derived( ctx );
|
||||
|
||||
if (xrb->pixmap &&
|
||||
if (xrb->pixmap && /* drawing to pixmap or window */
|
||||
format == GL_RGB &&
|
||||
type == GL_UNSIGNED_SHORT_5_6_5 &&
|
||||
!ctx->Color.DitherFlag && /* no dithering */
|
||||
|
@ -651,7 +649,8 @@ xmesa_CopyPixels( GLcontext *ctx,
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
const SWcontext *swrast = SWRAST_CONTEXT( ctx );
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
const XMesaGC gc = ((XMesaBuffer) ctx->DrawBuffer)->gc;
|
||||
XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer);
|
||||
const XMesaGC gc = xmbuf->cleargc; /* effected by glColorMask */
|
||||
struct xmesa_renderbuffer *srcXrb
|
||||
= xmesa_renderbuffer(ctx->ReadBuffer->_ColorReadBuffer->Wrapped);
|
||||
struct xmesa_renderbuffer *dstXrb
|
||||
|
|
17
reactos/dll/3rdparty/mesa32/src/glapi/dispatch.h
vendored
17
reactos/dll/3rdparty/mesa32/src/glapi/dispatch.h
vendored
|
@ -2362,6 +2362,9 @@
|
|||
#define CALL_BlitFramebufferEXT(disp, parameters) (*((disp)->BlitFramebufferEXT)) parameters
|
||||
#define GET_BlitFramebufferEXT(disp) ((disp)->BlitFramebufferEXT)
|
||||
#define SET_BlitFramebufferEXT(disp, fn) ((disp)->BlitFramebufferEXT = fn)
|
||||
#define CALL_StencilFuncSeparateATI(disp, parameters) (*((disp)->StencilFuncSeparateATI)) parameters
|
||||
#define GET_StencilFuncSeparateATI(disp) ((disp)->StencilFuncSeparateATI)
|
||||
#define SET_StencilFuncSeparateATI(disp, fn) ((disp)->StencilFuncSeparateATI = fn)
|
||||
#define CALL_ProgramEnvParameters4fvEXT(disp, parameters) (*((disp)->ProgramEnvParameters4fvEXT)) parameters
|
||||
#define GET_ProgramEnvParameters4fvEXT(disp) ((disp)->ProgramEnvParameters4fvEXT)
|
||||
#define SET_ProgramEnvParameters4fvEXT(disp, fn) ((disp)->ProgramEnvParameters4fvEXT = fn)
|
||||
|
@ -2377,7 +2380,7 @@
|
|||
|
||||
#else
|
||||
|
||||
#define driDispatchRemapTable_size 364
|
||||
#define driDispatchRemapTable_size 365
|
||||
extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
|
||||
|
||||
#define AttachShader_remap_index 0
|
||||
|
@ -2740,10 +2743,11 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
|
|||
#define IsRenderbufferEXT_remap_index 357
|
||||
#define RenderbufferStorageEXT_remap_index 358
|
||||
#define BlitFramebufferEXT_remap_index 359
|
||||
#define ProgramEnvParameters4fvEXT_remap_index 360
|
||||
#define ProgramLocalParameters4fvEXT_remap_index 361
|
||||
#define GetQueryObjecti64vEXT_remap_index 362
|
||||
#define GetQueryObjectui64vEXT_remap_index 363
|
||||
#define StencilFuncSeparateATI_remap_index 360
|
||||
#define ProgramEnvParameters4fvEXT_remap_index 361
|
||||
#define ProgramLocalParameters4fvEXT_remap_index 362
|
||||
#define GetQueryObjecti64vEXT_remap_index 363
|
||||
#define GetQueryObjectui64vEXT_remap_index 364
|
||||
|
||||
#define CALL_AttachShader(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLuint, GLuint)), driDispatchRemapTable[AttachShader_remap_index], parameters)
|
||||
#define GET_AttachShader(disp) GET_by_offset(disp, driDispatchRemapTable[AttachShader_remap_index])
|
||||
|
@ -3825,6 +3829,9 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
|
|||
#define CALL_BlitFramebufferEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum)), driDispatchRemapTable[BlitFramebufferEXT_remap_index], parameters)
|
||||
#define GET_BlitFramebufferEXT(disp) GET_by_offset(disp, driDispatchRemapTable[BlitFramebufferEXT_remap_index])
|
||||
#define SET_BlitFramebufferEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[BlitFramebufferEXT_remap_index], fn)
|
||||
#define CALL_StencilFuncSeparateATI(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLint, GLuint)), driDispatchRemapTable[StencilFuncSeparateATI_remap_index], parameters)
|
||||
#define GET_StencilFuncSeparateATI(disp) GET_by_offset(disp, driDispatchRemapTable[StencilFuncSeparateATI_remap_index])
|
||||
#define SET_StencilFuncSeparateATI(disp, fn) SET_by_offset(disp, driDispatchRemapTable[StencilFuncSeparateATI_remap_index], fn)
|
||||
#define CALL_ProgramEnvParameters4fvEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLuint, GLsizei, const GLfloat *)), driDispatchRemapTable[ProgramEnvParameters4fvEXT_remap_index], parameters)
|
||||
#define GET_ProgramEnvParameters4fvEXT(disp) GET_by_offset(disp, driDispatchRemapTable[ProgramEnvParameters4fvEXT_remap_index])
|
||||
#define SET_ProgramEnvParameters4fvEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[ProgramEnvParameters4fvEXT_remap_index], fn)
|
||||
|
|
|
@ -878,10 +878,10 @@ _glapi_get_proc_address(const char *funcName)
|
|||
|
||||
#ifdef MANGLE
|
||||
if (funcName[0] != 'm' || funcName[1] != 'g' || funcName[2] != 'l')
|
||||
return NULL;
|
||||
return NULL;
|
||||
#else
|
||||
if (funcName[0] != 'g' || funcName[1] != 'l')
|
||||
return NULL;
|
||||
return NULL;
|
||||
#endif
|
||||
|
||||
/* search extension functions first */
|
||||
|
|
|
@ -800,11 +800,12 @@
|
|||
#define _gloffset_IsRenderbufferEXT 765
|
||||
#define _gloffset_RenderbufferStorageEXT 766
|
||||
#define _gloffset_BlitFramebufferEXT 767
|
||||
#define _gloffset_ProgramEnvParameters4fvEXT 768
|
||||
#define _gloffset_ProgramLocalParameters4fvEXT 769
|
||||
#define _gloffset_GetQueryObjecti64vEXT 770
|
||||
#define _gloffset_GetQueryObjectui64vEXT 771
|
||||
#define _gloffset_FIRST_DYNAMIC 772
|
||||
#define _gloffset_StencilFuncSeparateATI 768
|
||||
#define _gloffset_ProgramEnvParameters4fvEXT 769
|
||||
#define _gloffset_ProgramLocalParameters4fvEXT 770
|
||||
#define _gloffset_GetQueryObjecti64vEXT 771
|
||||
#define _gloffset_GetQueryObjectui64vEXT 772
|
||||
#define _gloffset_FIRST_DYNAMIC 773
|
||||
|
||||
#else
|
||||
|
||||
|
@ -1168,6 +1169,7 @@
|
|||
#define _gloffset_IsRenderbufferEXT driDispatchRemapTable[IsRenderbufferEXT_remap_index]
|
||||
#define _gloffset_RenderbufferStorageEXT driDispatchRemapTable[RenderbufferStorageEXT_remap_index]
|
||||
#define _gloffset_BlitFramebufferEXT driDispatchRemapTable[BlitFramebufferEXT_remap_index]
|
||||
#define _gloffset_StencilFuncSeparateATI driDispatchRemapTable[StencilFuncSeparateATI_remap_index]
|
||||
#define _gloffset_ProgramEnvParameters4fvEXT driDispatchRemapTable[ProgramEnvParameters4fvEXT_remap_index]
|
||||
#define _gloffset_ProgramLocalParameters4fvEXT driDispatchRemapTable[ProgramLocalParameters4fvEXT_remap_index]
|
||||
#define _gloffset_GetQueryObjecti64vEXT driDispatchRemapTable[GetQueryObjecti64vEXT_remap_index]
|
||||
|
|
|
@ -464,7 +464,7 @@ struct _glapi_table
|
|||
GLboolean (GLAPIENTRYP IsShader)(GLuint shader); /* 420 */
|
||||
void (GLAPIENTRYP StencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask); /* 421 */
|
||||
void (GLAPIENTRYP StencilMaskSeparate)(GLenum face, GLuint mask); /* 422 */
|
||||
void (GLAPIENTRYP StencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); /* 423 */
|
||||
void (GLAPIENTRYP StencilOpSeparate)(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass); /* 423 */
|
||||
void (GLAPIENTRYP UniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 424 */
|
||||
void (GLAPIENTRYP UniformMatrix2x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 425 */
|
||||
void (GLAPIENTRYP UniformMatrix3x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 426 */
|
||||
|
@ -809,10 +809,11 @@ struct _glapi_table
|
|||
GLboolean (GLAPIENTRYP IsRenderbufferEXT)(GLuint renderbuffer); /* 765 */
|
||||
void (GLAPIENTRYP RenderbufferStorageEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); /* 766 */
|
||||
void (GLAPIENTRYP BlitFramebufferEXT)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); /* 767 */
|
||||
void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 768 */
|
||||
void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 769 */
|
||||
void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 770 */
|
||||
void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 771 */
|
||||
void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 768 */
|
||||
void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 769 */
|
||||
void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 770 */
|
||||
void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 771 */
|
||||
void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 772 */
|
||||
};
|
||||
|
||||
#endif /* !defined( _GLAPI_TABLE_H_ ) */
|
||||
|
|
|
@ -2754,9 +2754,16 @@ KEYWORD1 void KEYWORD2 NAME(StencilMaskSeparate)(GLenum face, GLuint mask)
|
|||
DISPATCH(StencilMaskSeparate, (face, mask), (F, "glStencilMaskSeparate(0x%x, %d);\n", face, mask));
|
||||
}
|
||||
|
||||
KEYWORD1 void KEYWORD2 NAME(StencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
|
||||
KEYWORD1 void KEYWORD2 NAME(StencilOpSeparate)(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass)
|
||||
{
|
||||
DISPATCH(StencilOpSeparate, (face, fail, zfail, zpass), (F, "glStencilOpSeparate(0x%x, 0x%x, 0x%x, 0x%x);\n", face, fail, zfail, zpass));
|
||||
DISPATCH(StencilOpSeparate, (face, sfail, zfail, zpass), (F, "glStencilOpSeparate(0x%x, 0x%x, 0x%x, 0x%x);\n", face, sfail, zfail, zpass));
|
||||
}
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_423)(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass);
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_423)(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass)
|
||||
{
|
||||
DISPATCH(StencilOpSeparate, (face, sfail, zfail, zpass), (F, "glStencilOpSeparateATI(0x%x, 0x%x, 0x%x, 0x%x);\n", face, sfail, zfail, zpass));
|
||||
}
|
||||
|
||||
KEYWORD1 void KEYWORD2 NAME(UniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
|
||||
|
@ -5441,30 +5448,37 @@ KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_767)(GLint srcX0, GLint srcY0, GL
|
|||
DISPATCH(BlitFramebufferEXT, (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter), (F, "glBlitFramebufferEXT(%d, %d, %d, %d, %d, %d, %d, %d, %d, 0x%x);\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter));
|
||||
}
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_768)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_768)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_768)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_768)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)
|
||||
{
|
||||
DISPATCH(ProgramEnvParameters4fvEXT, (target, index, count, params), (F, "glProgramEnvParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
|
||||
DISPATCH(StencilFuncSeparateATI, (frontfunc, backfunc, ref, mask), (F, "glStencilFuncSeparateATI(0x%x, 0x%x, %d, %d);\n", frontfunc, backfunc, ref, mask));
|
||||
}
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_769)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_769)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
|
||||
{
|
||||
DISPATCH(ProgramEnvParameters4fvEXT, (target, index, count, params), (F, "glProgramEnvParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
|
||||
}
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_770)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_770)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
|
||||
{
|
||||
DISPATCH(ProgramLocalParameters4fvEXT, (target, index, count, params), (F, "glProgramLocalParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
|
||||
}
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_770)(GLuint id, GLenum pname, GLint64EXT * params);
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_771)(GLuint id, GLenum pname, GLint64EXT * params);
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_770)(GLuint id, GLenum pname, GLint64EXT * params)
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_771)(GLuint id, GLenum pname, GLint64EXT * params)
|
||||
{
|
||||
DISPATCH(GetQueryObjecti64vEXT, (id, pname, params), (F, "glGetQueryObjecti64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params));
|
||||
}
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_771)(GLuint id, GLenum pname, GLuint64EXT * params);
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_772)(GLuint id, GLenum pname, GLuint64EXT * params);
|
||||
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_771)(GLuint id, GLenum pname, GLuint64EXT * params)
|
||||
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_772)(GLuint id, GLenum pname, GLuint64EXT * params)
|
||||
{
|
||||
DISPATCH(GetQueryObjectui64vEXT, (id, pname, params), (F, "glGetQueryObjectui64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params));
|
||||
}
|
||||
|
@ -6255,6 +6269,7 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
|
|||
TABLE_ENTRY(_dispatch_stub_769),
|
||||
TABLE_ENTRY(_dispatch_stub_770),
|
||||
TABLE_ENTRY(_dispatch_stub_771),
|
||||
TABLE_ENTRY(_dispatch_stub_772),
|
||||
/* A whole bunch of no-op functions. These might be called
|
||||
* when someone tries to call a dynamically-registered
|
||||
* extension function without a current rendering context.
|
||||
|
|
562
reactos/dll/3rdparty/mesa32/src/glapi/glprocs.h
vendored
562
reactos/dll/3rdparty/mesa32/src/glapi/glprocs.h
vendored
|
@ -820,6 +820,7 @@ static const char gl_string_table[] =
|
|||
"glIsRenderbufferEXT\0"
|
||||
"glRenderbufferStorageEXT\0"
|
||||
"glBlitFramebufferEXT\0"
|
||||
"glStencilFuncSeparateATI\0"
|
||||
"glProgramEnvParameters4fvEXT\0"
|
||||
"glProgramLocalParameters4fvEXT\0"
|
||||
"glGetQueryObjecti64vEXT\0"
|
||||
|
@ -915,6 +916,7 @@ static const char gl_string_table[] =
|
|||
"glMultiTexCoord4iv\0"
|
||||
"glMultiTexCoord4s\0"
|
||||
"glMultiTexCoord4sv\0"
|
||||
"glStencilOpSeparateATI\0"
|
||||
"glLoadTransposeMatrixd\0"
|
||||
"glLoadTransposeMatrixf\0"
|
||||
"glMultTransposeMatrixd\0"
|
||||
|
@ -1147,6 +1149,7 @@ static const char gl_string_table[] =
|
|||
#define gl_dispatch_stub_769 mgl_dispatch_stub_769
|
||||
#define gl_dispatch_stub_770 mgl_dispatch_stub_770
|
||||
#define gl_dispatch_stub_771 mgl_dispatch_stub_771
|
||||
#define gl_dispatch_stub_772 mgl_dispatch_stub_772
|
||||
#endif /* USE_MGL_NAMESPACE */
|
||||
|
||||
|
||||
|
@ -1197,6 +1200,7 @@ extern void gl_dispatch_stub_768(void);
|
|||
extern void gl_dispatch_stub_769(void);
|
||||
extern void gl_dispatch_stub_770(void);
|
||||
extern void gl_dispatch_stub_771(void);
|
||||
extern void gl_dispatch_stub_772(void);
|
||||
#endif /* defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING) */
|
||||
|
||||
static const glprocs_table_t static_functions[] = {
|
||||
|
@ -1968,284 +1972,286 @@ static const glprocs_table_t static_functions[] = {
|
|||
NAME_FUNC_OFFSET(13404, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT),
|
||||
NAME_FUNC_OFFSET(13424, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT),
|
||||
NAME_FUNC_OFFSET(13449, gl_dispatch_stub_767, gl_dispatch_stub_767, NULL, _gloffset_BlitFramebufferEXT),
|
||||
NAME_FUNC_OFFSET(13470, gl_dispatch_stub_768, gl_dispatch_stub_768, NULL, _gloffset_ProgramEnvParameters4fvEXT),
|
||||
NAME_FUNC_OFFSET(13499, gl_dispatch_stub_769, gl_dispatch_stub_769, NULL, _gloffset_ProgramLocalParameters4fvEXT),
|
||||
NAME_FUNC_OFFSET(13530, gl_dispatch_stub_770, gl_dispatch_stub_770, NULL, _gloffset_GetQueryObjecti64vEXT),
|
||||
NAME_FUNC_OFFSET(13554, gl_dispatch_stub_771, gl_dispatch_stub_771, NULL, _gloffset_GetQueryObjectui64vEXT),
|
||||
NAME_FUNC_OFFSET(13579, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement),
|
||||
NAME_FUNC_OFFSET(13597, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture),
|
||||
NAME_FUNC_OFFSET(13614, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays),
|
||||
NAME_FUNC_OFFSET(13630, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident),
|
||||
NAME_FUNC_OFFSET(13655, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D),
|
||||
NAME_FUNC_OFFSET(13675, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D),
|
||||
NAME_FUNC_OFFSET(13695, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D),
|
||||
NAME_FUNC_OFFSET(13718, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D),
|
||||
NAME_FUNC_OFFSET(13741, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures),
|
||||
NAME_FUNC_OFFSET(13761, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures),
|
||||
NAME_FUNC_OFFSET(13778, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv),
|
||||
NAME_FUNC_OFFSET(13795, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture),
|
||||
NAME_FUNC_OFFSET(13810, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures),
|
||||
NAME_FUNC_OFFSET(13834, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D),
|
||||
NAME_FUNC_OFFSET(13853, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D),
|
||||
NAME_FUNC_OFFSET(13872, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor),
|
||||
NAME_FUNC_OFFSET(13888, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation),
|
||||
NAME_FUNC_OFFSET(13907, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements),
|
||||
NAME_FUNC_OFFSET(13930, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
|
||||
NAME_FUNC_OFFSET(13946, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
|
||||
NAME_FUNC_OFFSET(13962, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv),
|
||||
NAME_FUNC_OFFSET(13989, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv),
|
||||
NAME_FUNC_OFFSET(14016, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable),
|
||||
NAME_FUNC_OFFSET(14036, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
|
||||
NAME_FUNC_OFFSET(14055, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
|
||||
NAME_FUNC_OFFSET(14074, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
|
||||
NAME_FUNC_OFFSET(14104, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
|
||||
NAME_FUNC_OFFSET(14134, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
|
||||
NAME_FUNC_OFFSET(14164, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
|
||||
NAME_FUNC_OFFSET(14194, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable),
|
||||
NAME_FUNC_OFFSET(14213, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable),
|
||||
NAME_FUNC_OFFSET(14236, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D),
|
||||
NAME_FUNC_OFFSET(14261, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D),
|
||||
NAME_FUNC_OFFSET(14286, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf),
|
||||
NAME_FUNC_OFFSET(14313, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv),
|
||||
NAME_FUNC_OFFSET(14341, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri),
|
||||
NAME_FUNC_OFFSET(14368, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv),
|
||||
NAME_FUNC_OFFSET(14396, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D),
|
||||
NAME_FUNC_OFFSET(14425, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D),
|
||||
NAME_FUNC_OFFSET(14454, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter),
|
||||
NAME_FUNC_OFFSET(14480, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv),
|
||||
NAME_FUNC_OFFSET(14511, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv),
|
||||
NAME_FUNC_OFFSET(14542, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter),
|
||||
NAME_FUNC_OFFSET(14566, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D),
|
||||
NAME_FUNC_OFFSET(14589, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram),
|
||||
NAME_FUNC_OFFSET(14607, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv),
|
||||
NAME_FUNC_OFFSET(14636, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv),
|
||||
NAME_FUNC_OFFSET(14665, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax),
|
||||
NAME_FUNC_OFFSET(14680, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv),
|
||||
NAME_FUNC_OFFSET(14706, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv),
|
||||
NAME_FUNC_OFFSET(14732, glHistogram, glHistogram, NULL, _gloffset_Histogram),
|
||||
NAME_FUNC_OFFSET(14747, glMinmax, glMinmax, NULL, _gloffset_Minmax),
|
||||
NAME_FUNC_OFFSET(14759, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram),
|
||||
NAME_FUNC_OFFSET(14779, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax),
|
||||
NAME_FUNC_OFFSET(14796, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D),
|
||||
NAME_FUNC_OFFSET(14812, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D),
|
||||
NAME_FUNC_OFFSET(14831, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D),
|
||||
NAME_FUNC_OFFSET(14854, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB),
|
||||
NAME_FUNC_OFFSET(14870, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB),
|
||||
NAME_FUNC_OFFSET(14892, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB),
|
||||
NAME_FUNC_OFFSET(14910, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB),
|
||||
NAME_FUNC_OFFSET(14929, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB),
|
||||
NAME_FUNC_OFFSET(14947, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB),
|
||||
NAME_FUNC_OFFSET(14966, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB),
|
||||
NAME_FUNC_OFFSET(14984, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB),
|
||||
NAME_FUNC_OFFSET(15003, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB),
|
||||
NAME_FUNC_OFFSET(15021, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB),
|
||||
NAME_FUNC_OFFSET(15040, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB),
|
||||
NAME_FUNC_OFFSET(15058, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB),
|
||||
NAME_FUNC_OFFSET(15077, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB),
|
||||
NAME_FUNC_OFFSET(15095, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB),
|
||||
NAME_FUNC_OFFSET(15114, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB),
|
||||
NAME_FUNC_OFFSET(15132, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB),
|
||||
NAME_FUNC_OFFSET(15151, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB),
|
||||
NAME_FUNC_OFFSET(15169, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB),
|
||||
NAME_FUNC_OFFSET(15188, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB),
|
||||
NAME_FUNC_OFFSET(15206, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB),
|
||||
NAME_FUNC_OFFSET(15225, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB),
|
||||
NAME_FUNC_OFFSET(15243, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB),
|
||||
NAME_FUNC_OFFSET(15262, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB),
|
||||
NAME_FUNC_OFFSET(15280, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB),
|
||||
NAME_FUNC_OFFSET(15299, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB),
|
||||
NAME_FUNC_OFFSET(15317, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB),
|
||||
NAME_FUNC_OFFSET(15336, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB),
|
||||
NAME_FUNC_OFFSET(15354, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB),
|
||||
NAME_FUNC_OFFSET(15373, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB),
|
||||
NAME_FUNC_OFFSET(15391, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB),
|
||||
NAME_FUNC_OFFSET(15410, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB),
|
||||
NAME_FUNC_OFFSET(15428, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB),
|
||||
NAME_FUNC_OFFSET(15447, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB),
|
||||
NAME_FUNC_OFFSET(15465, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB),
|
||||
NAME_FUNC_OFFSET(15484, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB),
|
||||
NAME_FUNC_OFFSET(15507, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB),
|
||||
NAME_FUNC_OFFSET(15530, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB),
|
||||
NAME_FUNC_OFFSET(15553, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB),
|
||||
NAME_FUNC_OFFSET(15576, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB),
|
||||
NAME_FUNC_OFFSET(15593, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB),
|
||||
NAME_FUNC_OFFSET(15616, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB),
|
||||
NAME_FUNC_OFFSET(15639, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB),
|
||||
NAME_FUNC_OFFSET(15662, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB),
|
||||
NAME_FUNC_OFFSET(15688, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB),
|
||||
NAME_FUNC_OFFSET(15714, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB),
|
||||
NAME_FUNC_OFFSET(15740, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB),
|
||||
NAME_FUNC_OFFSET(15764, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB),
|
||||
NAME_FUNC_OFFSET(15791, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB),
|
||||
NAME_FUNC_OFFSET(15817, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB),
|
||||
NAME_FUNC_OFFSET(15837, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB),
|
||||
NAME_FUNC_OFFSET(15857, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB),
|
||||
NAME_FUNC_OFFSET(15877, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB),
|
||||
NAME_FUNC_OFFSET(15894, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB),
|
||||
NAME_FUNC_OFFSET(15912, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB),
|
||||
NAME_FUNC_OFFSET(15929, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB),
|
||||
NAME_FUNC_OFFSET(15947, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB),
|
||||
NAME_FUNC_OFFSET(15964, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB),
|
||||
NAME_FUNC_OFFSET(15982, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB),
|
||||
NAME_FUNC_OFFSET(15999, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB),
|
||||
NAME_FUNC_OFFSET(16017, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB),
|
||||
NAME_FUNC_OFFSET(16034, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB),
|
||||
NAME_FUNC_OFFSET(16052, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB),
|
||||
NAME_FUNC_OFFSET(16069, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB),
|
||||
NAME_FUNC_OFFSET(16087, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB),
|
||||
NAME_FUNC_OFFSET(16104, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB),
|
||||
NAME_FUNC_OFFSET(16122, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB),
|
||||
NAME_FUNC_OFFSET(16139, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB),
|
||||
NAME_FUNC_OFFSET(16157, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB),
|
||||
NAME_FUNC_OFFSET(16174, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB),
|
||||
NAME_FUNC_OFFSET(16192, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB),
|
||||
NAME_FUNC_OFFSET(16211, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB),
|
||||
NAME_FUNC_OFFSET(16230, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB),
|
||||
NAME_FUNC_OFFSET(16249, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB),
|
||||
NAME_FUNC_OFFSET(16268, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB),
|
||||
NAME_FUNC_OFFSET(16288, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB),
|
||||
NAME_FUNC_OFFSET(16308, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB),
|
||||
NAME_FUNC_OFFSET(16328, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB),
|
||||
NAME_FUNC_OFFSET(16346, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB),
|
||||
NAME_FUNC_OFFSET(16363, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB),
|
||||
NAME_FUNC_OFFSET(16381, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB),
|
||||
NAME_FUNC_OFFSET(16398, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB),
|
||||
NAME_FUNC_OFFSET(16416, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB),
|
||||
NAME_FUNC_OFFSET(16434, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB),
|
||||
NAME_FUNC_OFFSET(16451, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB),
|
||||
NAME_FUNC_OFFSET(16469, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB),
|
||||
NAME_FUNC_OFFSET(16488, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB),
|
||||
NAME_FUNC_OFFSET(16507, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB),
|
||||
NAME_FUNC_OFFSET(16526, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB),
|
||||
NAME_FUNC_OFFSET(16548, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB),
|
||||
NAME_FUNC_OFFSET(16561, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB),
|
||||
NAME_FUNC_OFFSET(16574, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB),
|
||||
NAME_FUNC_OFFSET(16590, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB),
|
||||
NAME_FUNC_OFFSET(16606, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB),
|
||||
NAME_FUNC_OFFSET(16619, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB),
|
||||
NAME_FUNC_OFFSET(16642, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB),
|
||||
NAME_FUNC_OFFSET(16662, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB),
|
||||
NAME_FUNC_OFFSET(16681, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB),
|
||||
NAME_FUNC_OFFSET(16692, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB),
|
||||
NAME_FUNC_OFFSET(16704, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB),
|
||||
NAME_FUNC_OFFSET(16718, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB),
|
||||
NAME_FUNC_OFFSET(16731, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB),
|
||||
NAME_FUNC_OFFSET(16747, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB),
|
||||
NAME_FUNC_OFFSET(16758, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB),
|
||||
NAME_FUNC_OFFSET(16771, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB),
|
||||
NAME_FUNC_OFFSET(16790, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB),
|
||||
NAME_FUNC_OFFSET(16810, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB),
|
||||
NAME_FUNC_OFFSET(16823, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB),
|
||||
NAME_FUNC_OFFSET(16833, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB),
|
||||
NAME_FUNC_OFFSET(16849, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB),
|
||||
NAME_FUNC_OFFSET(16868, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB),
|
||||
NAME_FUNC_OFFSET(16886, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB),
|
||||
NAME_FUNC_OFFSET(16907, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB),
|
||||
NAME_FUNC_OFFSET(16922, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB),
|
||||
NAME_FUNC_OFFSET(16937, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB),
|
||||
NAME_FUNC_OFFSET(16951, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB),
|
||||
NAME_FUNC_OFFSET(16966, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB),
|
||||
NAME_FUNC_OFFSET(16978, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB),
|
||||
NAME_FUNC_OFFSET(16991, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB),
|
||||
NAME_FUNC_OFFSET(17003, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB),
|
||||
NAME_FUNC_OFFSET(17016, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB),
|
||||
NAME_FUNC_OFFSET(17028, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB),
|
||||
NAME_FUNC_OFFSET(17041, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB),
|
||||
NAME_FUNC_OFFSET(17053, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB),
|
||||
NAME_FUNC_OFFSET(17066, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB),
|
||||
NAME_FUNC_OFFSET(17078, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB),
|
||||
NAME_FUNC_OFFSET(17091, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB),
|
||||
NAME_FUNC_OFFSET(17103, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB),
|
||||
NAME_FUNC_OFFSET(17116, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB),
|
||||
NAME_FUNC_OFFSET(17128, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB),
|
||||
NAME_FUNC_OFFSET(17141, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB),
|
||||
NAME_FUNC_OFFSET(17153, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB),
|
||||
NAME_FUNC_OFFSET(17166, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB),
|
||||
NAME_FUNC_OFFSET(17185, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB),
|
||||
NAME_FUNC_OFFSET(17204, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB),
|
||||
NAME_FUNC_OFFSET(17223, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB),
|
||||
NAME_FUNC_OFFSET(17236, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB),
|
||||
NAME_FUNC_OFFSET(17254, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB),
|
||||
NAME_FUNC_OFFSET(17275, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB),
|
||||
NAME_FUNC_OFFSET(17293, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB),
|
||||
NAME_FUNC_OFFSET(17313, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
|
||||
NAME_FUNC_OFFSET(17327, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
|
||||
NAME_FUNC_OFFSET(17344, gl_dispatch_stub_568, gl_dispatch_stub_568, NULL, _gloffset_SampleMaskSGIS),
|
||||
NAME_FUNC_OFFSET(17360, gl_dispatch_stub_569, gl_dispatch_stub_569, NULL, _gloffset_SamplePatternSGIS),
|
||||
NAME_FUNC_OFFSET(17379, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
|
||||
NAME_FUNC_OFFSET(17397, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
|
||||
NAME_FUNC_OFFSET(17418, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
|
||||
NAME_FUNC_OFFSET(17440, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
|
||||
NAME_FUNC_OFFSET(17459, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
|
||||
NAME_FUNC_OFFSET(17481, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
|
||||
NAME_FUNC_OFFSET(17504, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
|
||||
NAME_FUNC_OFFSET(17523, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
|
||||
NAME_FUNC_OFFSET(17543, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
|
||||
NAME_FUNC_OFFSET(17562, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
|
||||
NAME_FUNC_OFFSET(17582, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
|
||||
NAME_FUNC_OFFSET(17601, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
|
||||
NAME_FUNC_OFFSET(17621, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
|
||||
NAME_FUNC_OFFSET(17640, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
|
||||
NAME_FUNC_OFFSET(17660, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
|
||||
NAME_FUNC_OFFSET(17679, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
|
||||
NAME_FUNC_OFFSET(17699, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
|
||||
NAME_FUNC_OFFSET(17719, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
|
||||
NAME_FUNC_OFFSET(17740, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
|
||||
NAME_FUNC_OFFSET(17760, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
|
||||
NAME_FUNC_OFFSET(17781, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
|
||||
NAME_FUNC_OFFSET(17801, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
|
||||
NAME_FUNC_OFFSET(17822, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
|
||||
NAME_FUNC_OFFSET(17846, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
|
||||
NAME_FUNC_OFFSET(17864, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
|
||||
NAME_FUNC_OFFSET(17884, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
|
||||
NAME_FUNC_OFFSET(17902, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
|
||||
NAME_FUNC_OFFSET(17914, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
|
||||
NAME_FUNC_OFFSET(17927, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
|
||||
NAME_FUNC_OFFSET(17939, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
|
||||
NAME_FUNC_OFFSET(17952, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
|
||||
NAME_FUNC_OFFSET(17972, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
|
||||
NAME_FUNC_OFFSET(17996, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
|
||||
NAME_FUNC_OFFSET(18010, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
|
||||
NAME_FUNC_OFFSET(18027, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
|
||||
NAME_FUNC_OFFSET(18042, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
|
||||
NAME_FUNC_OFFSET(18060, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
|
||||
NAME_FUNC_OFFSET(18074, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
|
||||
NAME_FUNC_OFFSET(18091, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
|
||||
NAME_FUNC_OFFSET(18106, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
|
||||
NAME_FUNC_OFFSET(18124, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
|
||||
NAME_FUNC_OFFSET(18138, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
|
||||
NAME_FUNC_OFFSET(18155, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
|
||||
NAME_FUNC_OFFSET(18170, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
|
||||
NAME_FUNC_OFFSET(18188, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
|
||||
NAME_FUNC_OFFSET(18202, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
|
||||
NAME_FUNC_OFFSET(18219, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
|
||||
NAME_FUNC_OFFSET(18234, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
|
||||
NAME_FUNC_OFFSET(18252, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
|
||||
NAME_FUNC_OFFSET(18266, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
|
||||
NAME_FUNC_OFFSET(18283, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
|
||||
NAME_FUNC_OFFSET(18298, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
|
||||
NAME_FUNC_OFFSET(18316, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
|
||||
NAME_FUNC_OFFSET(18330, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
|
||||
NAME_FUNC_OFFSET(18347, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
|
||||
NAME_FUNC_OFFSET(18362, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
|
||||
NAME_FUNC_OFFSET(18380, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
|
||||
NAME_FUNC_OFFSET(18394, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
|
||||
NAME_FUNC_OFFSET(18411, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
|
||||
NAME_FUNC_OFFSET(18426, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
|
||||
NAME_FUNC_OFFSET(18444, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
|
||||
NAME_FUNC_OFFSET(18458, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
|
||||
NAME_FUNC_OFFSET(18475, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
|
||||
NAME_FUNC_OFFSET(18490, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
|
||||
NAME_FUNC_OFFSET(18508, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
|
||||
NAME_FUNC_OFFSET(18525, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
|
||||
NAME_FUNC_OFFSET(18545, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
|
||||
NAME_FUNC_OFFSET(18562, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
|
||||
NAME_FUNC_OFFSET(18588, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
|
||||
NAME_FUNC_OFFSET(18617, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
|
||||
NAME_FUNC_OFFSET(18632, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
|
||||
NAME_FUNC_OFFSET(18650, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
|
||||
NAME_FUNC_OFFSET(18669, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
|
||||
NAME_FUNC_OFFSET(18693, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
|
||||
NAME_FUNC_OFFSET(13470, gl_dispatch_stub_768, gl_dispatch_stub_768, NULL, _gloffset_StencilFuncSeparateATI),
|
||||
NAME_FUNC_OFFSET(13495, gl_dispatch_stub_769, gl_dispatch_stub_769, NULL, _gloffset_ProgramEnvParameters4fvEXT),
|
||||
NAME_FUNC_OFFSET(13524, gl_dispatch_stub_770, gl_dispatch_stub_770, NULL, _gloffset_ProgramLocalParameters4fvEXT),
|
||||
NAME_FUNC_OFFSET(13555, gl_dispatch_stub_771, gl_dispatch_stub_771, NULL, _gloffset_GetQueryObjecti64vEXT),
|
||||
NAME_FUNC_OFFSET(13579, gl_dispatch_stub_772, gl_dispatch_stub_772, NULL, _gloffset_GetQueryObjectui64vEXT),
|
||||
NAME_FUNC_OFFSET(13604, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement),
|
||||
NAME_FUNC_OFFSET(13622, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture),
|
||||
NAME_FUNC_OFFSET(13639, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays),
|
||||
NAME_FUNC_OFFSET(13655, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident),
|
||||
NAME_FUNC_OFFSET(13680, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D),
|
||||
NAME_FUNC_OFFSET(13700, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D),
|
||||
NAME_FUNC_OFFSET(13720, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D),
|
||||
NAME_FUNC_OFFSET(13743, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D),
|
||||
NAME_FUNC_OFFSET(13766, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures),
|
||||
NAME_FUNC_OFFSET(13786, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures),
|
||||
NAME_FUNC_OFFSET(13803, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv),
|
||||
NAME_FUNC_OFFSET(13820, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture),
|
||||
NAME_FUNC_OFFSET(13835, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures),
|
||||
NAME_FUNC_OFFSET(13859, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D),
|
||||
NAME_FUNC_OFFSET(13878, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D),
|
||||
NAME_FUNC_OFFSET(13897, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor),
|
||||
NAME_FUNC_OFFSET(13913, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation),
|
||||
NAME_FUNC_OFFSET(13932, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements),
|
||||
NAME_FUNC_OFFSET(13955, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
|
||||
NAME_FUNC_OFFSET(13971, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
|
||||
NAME_FUNC_OFFSET(13987, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv),
|
||||
NAME_FUNC_OFFSET(14014, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv),
|
||||
NAME_FUNC_OFFSET(14041, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable),
|
||||
NAME_FUNC_OFFSET(14061, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
|
||||
NAME_FUNC_OFFSET(14080, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
|
||||
NAME_FUNC_OFFSET(14099, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
|
||||
NAME_FUNC_OFFSET(14129, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
|
||||
NAME_FUNC_OFFSET(14159, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
|
||||
NAME_FUNC_OFFSET(14189, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
|
||||
NAME_FUNC_OFFSET(14219, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable),
|
||||
NAME_FUNC_OFFSET(14238, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable),
|
||||
NAME_FUNC_OFFSET(14261, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D),
|
||||
NAME_FUNC_OFFSET(14286, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D),
|
||||
NAME_FUNC_OFFSET(14311, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf),
|
||||
NAME_FUNC_OFFSET(14338, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv),
|
||||
NAME_FUNC_OFFSET(14366, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri),
|
||||
NAME_FUNC_OFFSET(14393, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv),
|
||||
NAME_FUNC_OFFSET(14421, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D),
|
||||
NAME_FUNC_OFFSET(14450, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D),
|
||||
NAME_FUNC_OFFSET(14479, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter),
|
||||
NAME_FUNC_OFFSET(14505, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv),
|
||||
NAME_FUNC_OFFSET(14536, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv),
|
||||
NAME_FUNC_OFFSET(14567, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter),
|
||||
NAME_FUNC_OFFSET(14591, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D),
|
||||
NAME_FUNC_OFFSET(14614, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram),
|
||||
NAME_FUNC_OFFSET(14632, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv),
|
||||
NAME_FUNC_OFFSET(14661, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv),
|
||||
NAME_FUNC_OFFSET(14690, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax),
|
||||
NAME_FUNC_OFFSET(14705, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv),
|
||||
NAME_FUNC_OFFSET(14731, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv),
|
||||
NAME_FUNC_OFFSET(14757, glHistogram, glHistogram, NULL, _gloffset_Histogram),
|
||||
NAME_FUNC_OFFSET(14772, glMinmax, glMinmax, NULL, _gloffset_Minmax),
|
||||
NAME_FUNC_OFFSET(14784, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram),
|
||||
NAME_FUNC_OFFSET(14804, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax),
|
||||
NAME_FUNC_OFFSET(14821, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D),
|
||||
NAME_FUNC_OFFSET(14837, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D),
|
||||
NAME_FUNC_OFFSET(14856, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D),
|
||||
NAME_FUNC_OFFSET(14879, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB),
|
||||
NAME_FUNC_OFFSET(14895, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB),
|
||||
NAME_FUNC_OFFSET(14917, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB),
|
||||
NAME_FUNC_OFFSET(14935, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB),
|
||||
NAME_FUNC_OFFSET(14954, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB),
|
||||
NAME_FUNC_OFFSET(14972, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB),
|
||||
NAME_FUNC_OFFSET(14991, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB),
|
||||
NAME_FUNC_OFFSET(15009, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB),
|
||||
NAME_FUNC_OFFSET(15028, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB),
|
||||
NAME_FUNC_OFFSET(15046, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB),
|
||||
NAME_FUNC_OFFSET(15065, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB),
|
||||
NAME_FUNC_OFFSET(15083, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB),
|
||||
NAME_FUNC_OFFSET(15102, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB),
|
||||
NAME_FUNC_OFFSET(15120, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB),
|
||||
NAME_FUNC_OFFSET(15139, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB),
|
||||
NAME_FUNC_OFFSET(15157, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB),
|
||||
NAME_FUNC_OFFSET(15176, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB),
|
||||
NAME_FUNC_OFFSET(15194, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB),
|
||||
NAME_FUNC_OFFSET(15213, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB),
|
||||
NAME_FUNC_OFFSET(15231, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB),
|
||||
NAME_FUNC_OFFSET(15250, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB),
|
||||
NAME_FUNC_OFFSET(15268, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB),
|
||||
NAME_FUNC_OFFSET(15287, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB),
|
||||
NAME_FUNC_OFFSET(15305, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB),
|
||||
NAME_FUNC_OFFSET(15324, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB),
|
||||
NAME_FUNC_OFFSET(15342, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB),
|
||||
NAME_FUNC_OFFSET(15361, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB),
|
||||
NAME_FUNC_OFFSET(15379, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB),
|
||||
NAME_FUNC_OFFSET(15398, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB),
|
||||
NAME_FUNC_OFFSET(15416, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB),
|
||||
NAME_FUNC_OFFSET(15435, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB),
|
||||
NAME_FUNC_OFFSET(15453, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB),
|
||||
NAME_FUNC_OFFSET(15472, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB),
|
||||
NAME_FUNC_OFFSET(15490, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB),
|
||||
NAME_FUNC_OFFSET(15509, glStencilOpSeparate, glStencilOpSeparate, NULL, _gloffset_StencilOpSeparate),
|
||||
NAME_FUNC_OFFSET(15532, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB),
|
||||
NAME_FUNC_OFFSET(15555, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB),
|
||||
NAME_FUNC_OFFSET(15578, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB),
|
||||
NAME_FUNC_OFFSET(15601, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB),
|
||||
NAME_FUNC_OFFSET(15624, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB),
|
||||
NAME_FUNC_OFFSET(15641, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB),
|
||||
NAME_FUNC_OFFSET(15664, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB),
|
||||
NAME_FUNC_OFFSET(15687, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB),
|
||||
NAME_FUNC_OFFSET(15710, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB),
|
||||
NAME_FUNC_OFFSET(15736, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB),
|
||||
NAME_FUNC_OFFSET(15762, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB),
|
||||
NAME_FUNC_OFFSET(15788, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB),
|
||||
NAME_FUNC_OFFSET(15812, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB),
|
||||
NAME_FUNC_OFFSET(15839, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB),
|
||||
NAME_FUNC_OFFSET(15865, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB),
|
||||
NAME_FUNC_OFFSET(15885, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB),
|
||||
NAME_FUNC_OFFSET(15905, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB),
|
||||
NAME_FUNC_OFFSET(15925, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB),
|
||||
NAME_FUNC_OFFSET(15942, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB),
|
||||
NAME_FUNC_OFFSET(15960, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB),
|
||||
NAME_FUNC_OFFSET(15977, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB),
|
||||
NAME_FUNC_OFFSET(15995, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB),
|
||||
NAME_FUNC_OFFSET(16012, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB),
|
||||
NAME_FUNC_OFFSET(16030, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB),
|
||||
NAME_FUNC_OFFSET(16047, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB),
|
||||
NAME_FUNC_OFFSET(16065, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB),
|
||||
NAME_FUNC_OFFSET(16082, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB),
|
||||
NAME_FUNC_OFFSET(16100, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB),
|
||||
NAME_FUNC_OFFSET(16117, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB),
|
||||
NAME_FUNC_OFFSET(16135, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB),
|
||||
NAME_FUNC_OFFSET(16152, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB),
|
||||
NAME_FUNC_OFFSET(16170, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB),
|
||||
NAME_FUNC_OFFSET(16187, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB),
|
||||
NAME_FUNC_OFFSET(16205, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB),
|
||||
NAME_FUNC_OFFSET(16222, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB),
|
||||
NAME_FUNC_OFFSET(16240, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB),
|
||||
NAME_FUNC_OFFSET(16259, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB),
|
||||
NAME_FUNC_OFFSET(16278, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB),
|
||||
NAME_FUNC_OFFSET(16297, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB),
|
||||
NAME_FUNC_OFFSET(16316, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB),
|
||||
NAME_FUNC_OFFSET(16336, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB),
|
||||
NAME_FUNC_OFFSET(16356, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB),
|
||||
NAME_FUNC_OFFSET(16376, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB),
|
||||
NAME_FUNC_OFFSET(16394, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB),
|
||||
NAME_FUNC_OFFSET(16411, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB),
|
||||
NAME_FUNC_OFFSET(16429, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB),
|
||||
NAME_FUNC_OFFSET(16446, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB),
|
||||
NAME_FUNC_OFFSET(16464, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB),
|
||||
NAME_FUNC_OFFSET(16482, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB),
|
||||
NAME_FUNC_OFFSET(16499, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB),
|
||||
NAME_FUNC_OFFSET(16517, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB),
|
||||
NAME_FUNC_OFFSET(16536, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB),
|
||||
NAME_FUNC_OFFSET(16555, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB),
|
||||
NAME_FUNC_OFFSET(16574, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB),
|
||||
NAME_FUNC_OFFSET(16596, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB),
|
||||
NAME_FUNC_OFFSET(16609, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB),
|
||||
NAME_FUNC_OFFSET(16622, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB),
|
||||
NAME_FUNC_OFFSET(16638, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB),
|
||||
NAME_FUNC_OFFSET(16654, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB),
|
||||
NAME_FUNC_OFFSET(16667, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB),
|
||||
NAME_FUNC_OFFSET(16690, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB),
|
||||
NAME_FUNC_OFFSET(16710, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB),
|
||||
NAME_FUNC_OFFSET(16729, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB),
|
||||
NAME_FUNC_OFFSET(16740, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB),
|
||||
NAME_FUNC_OFFSET(16752, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB),
|
||||
NAME_FUNC_OFFSET(16766, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB),
|
||||
NAME_FUNC_OFFSET(16779, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB),
|
||||
NAME_FUNC_OFFSET(16795, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB),
|
||||
NAME_FUNC_OFFSET(16806, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB),
|
||||
NAME_FUNC_OFFSET(16819, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB),
|
||||
NAME_FUNC_OFFSET(16838, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB),
|
||||
NAME_FUNC_OFFSET(16858, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB),
|
||||
NAME_FUNC_OFFSET(16871, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB),
|
||||
NAME_FUNC_OFFSET(16881, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB),
|
||||
NAME_FUNC_OFFSET(16897, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB),
|
||||
NAME_FUNC_OFFSET(16916, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB),
|
||||
NAME_FUNC_OFFSET(16934, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB),
|
||||
NAME_FUNC_OFFSET(16955, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB),
|
||||
NAME_FUNC_OFFSET(16970, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB),
|
||||
NAME_FUNC_OFFSET(16985, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB),
|
||||
NAME_FUNC_OFFSET(16999, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB),
|
||||
NAME_FUNC_OFFSET(17014, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB),
|
||||
NAME_FUNC_OFFSET(17026, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB),
|
||||
NAME_FUNC_OFFSET(17039, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB),
|
||||
NAME_FUNC_OFFSET(17051, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB),
|
||||
NAME_FUNC_OFFSET(17064, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB),
|
||||
NAME_FUNC_OFFSET(17076, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB),
|
||||
NAME_FUNC_OFFSET(17089, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB),
|
||||
NAME_FUNC_OFFSET(17101, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB),
|
||||
NAME_FUNC_OFFSET(17114, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB),
|
||||
NAME_FUNC_OFFSET(17126, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB),
|
||||
NAME_FUNC_OFFSET(17139, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB),
|
||||
NAME_FUNC_OFFSET(17151, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB),
|
||||
NAME_FUNC_OFFSET(17164, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB),
|
||||
NAME_FUNC_OFFSET(17176, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB),
|
||||
NAME_FUNC_OFFSET(17189, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB),
|
||||
NAME_FUNC_OFFSET(17201, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB),
|
||||
NAME_FUNC_OFFSET(17214, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB),
|
||||
NAME_FUNC_OFFSET(17233, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB),
|
||||
NAME_FUNC_OFFSET(17252, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB),
|
||||
NAME_FUNC_OFFSET(17271, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB),
|
||||
NAME_FUNC_OFFSET(17284, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB),
|
||||
NAME_FUNC_OFFSET(17302, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB),
|
||||
NAME_FUNC_OFFSET(17323, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB),
|
||||
NAME_FUNC_OFFSET(17341, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB),
|
||||
NAME_FUNC_OFFSET(17361, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
|
||||
NAME_FUNC_OFFSET(17375, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
|
||||
NAME_FUNC_OFFSET(17392, gl_dispatch_stub_568, gl_dispatch_stub_568, NULL, _gloffset_SampleMaskSGIS),
|
||||
NAME_FUNC_OFFSET(17408, gl_dispatch_stub_569, gl_dispatch_stub_569, NULL, _gloffset_SamplePatternSGIS),
|
||||
NAME_FUNC_OFFSET(17427, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
|
||||
NAME_FUNC_OFFSET(17445, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
|
||||
NAME_FUNC_OFFSET(17466, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
|
||||
NAME_FUNC_OFFSET(17488, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
|
||||
NAME_FUNC_OFFSET(17507, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
|
||||
NAME_FUNC_OFFSET(17529, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
|
||||
NAME_FUNC_OFFSET(17552, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
|
||||
NAME_FUNC_OFFSET(17571, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
|
||||
NAME_FUNC_OFFSET(17591, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
|
||||
NAME_FUNC_OFFSET(17610, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
|
||||
NAME_FUNC_OFFSET(17630, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
|
||||
NAME_FUNC_OFFSET(17649, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
|
||||
NAME_FUNC_OFFSET(17669, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
|
||||
NAME_FUNC_OFFSET(17688, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
|
||||
NAME_FUNC_OFFSET(17708, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
|
||||
NAME_FUNC_OFFSET(17727, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
|
||||
NAME_FUNC_OFFSET(17747, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
|
||||
NAME_FUNC_OFFSET(17767, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
|
||||
NAME_FUNC_OFFSET(17788, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
|
||||
NAME_FUNC_OFFSET(17808, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
|
||||
NAME_FUNC_OFFSET(17829, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
|
||||
NAME_FUNC_OFFSET(17849, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
|
||||
NAME_FUNC_OFFSET(17870, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
|
||||
NAME_FUNC_OFFSET(17894, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
|
||||
NAME_FUNC_OFFSET(17912, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
|
||||
NAME_FUNC_OFFSET(17932, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
|
||||
NAME_FUNC_OFFSET(17950, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
|
||||
NAME_FUNC_OFFSET(17962, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
|
||||
NAME_FUNC_OFFSET(17975, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
|
||||
NAME_FUNC_OFFSET(17987, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
|
||||
NAME_FUNC_OFFSET(18000, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
|
||||
NAME_FUNC_OFFSET(18020, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
|
||||
NAME_FUNC_OFFSET(18044, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
|
||||
NAME_FUNC_OFFSET(18058, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
|
||||
NAME_FUNC_OFFSET(18075, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
|
||||
NAME_FUNC_OFFSET(18090, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
|
||||
NAME_FUNC_OFFSET(18108, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
|
||||
NAME_FUNC_OFFSET(18122, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
|
||||
NAME_FUNC_OFFSET(18139, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
|
||||
NAME_FUNC_OFFSET(18154, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
|
||||
NAME_FUNC_OFFSET(18172, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
|
||||
NAME_FUNC_OFFSET(18186, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
|
||||
NAME_FUNC_OFFSET(18203, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
|
||||
NAME_FUNC_OFFSET(18218, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
|
||||
NAME_FUNC_OFFSET(18236, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
|
||||
NAME_FUNC_OFFSET(18250, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
|
||||
NAME_FUNC_OFFSET(18267, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
|
||||
NAME_FUNC_OFFSET(18282, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
|
||||
NAME_FUNC_OFFSET(18300, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
|
||||
NAME_FUNC_OFFSET(18314, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
|
||||
NAME_FUNC_OFFSET(18331, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
|
||||
NAME_FUNC_OFFSET(18346, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
|
||||
NAME_FUNC_OFFSET(18364, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
|
||||
NAME_FUNC_OFFSET(18378, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
|
||||
NAME_FUNC_OFFSET(18395, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
|
||||
NAME_FUNC_OFFSET(18410, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
|
||||
NAME_FUNC_OFFSET(18428, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
|
||||
NAME_FUNC_OFFSET(18442, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
|
||||
NAME_FUNC_OFFSET(18459, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
|
||||
NAME_FUNC_OFFSET(18474, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
|
||||
NAME_FUNC_OFFSET(18492, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
|
||||
NAME_FUNC_OFFSET(18506, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
|
||||
NAME_FUNC_OFFSET(18523, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
|
||||
NAME_FUNC_OFFSET(18538, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
|
||||
NAME_FUNC_OFFSET(18556, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
|
||||
NAME_FUNC_OFFSET(18573, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
|
||||
NAME_FUNC_OFFSET(18593, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
|
||||
NAME_FUNC_OFFSET(18610, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
|
||||
NAME_FUNC_OFFSET(18636, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
|
||||
NAME_FUNC_OFFSET(18665, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
|
||||
NAME_FUNC_OFFSET(18680, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
|
||||
NAME_FUNC_OFFSET(18698, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
|
||||
NAME_FUNC_OFFSET(18717, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
|
||||
NAME_FUNC_OFFSET(18741, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
|
||||
NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0)
|
||||
};
|
||||
|
||||
|
|
150
reactos/dll/3rdparty/mesa32/src/main/api_validate.c
vendored
150
reactos/dll/3rdparty/mesa32/src/main/api_validate.c
vendored
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 7.0.1
|
||||
* Version: 7.0.2
|
||||
*
|
||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
*
|
||||
|
@ -30,6 +30,55 @@
|
|||
#include "state.h"
|
||||
|
||||
|
||||
/**
|
||||
* Find the max index in the given element/index buffer
|
||||
*/
|
||||
static GLuint
|
||||
max_buffer_index(GLcontext *ctx, GLuint count, GLenum type,
|
||||
const void *indices,
|
||||
struct gl_buffer_object *elementBuf)
|
||||
{
|
||||
const GLubyte *map = NULL;
|
||||
GLuint max = 0;
|
||||
GLint i;
|
||||
|
||||
if (elementBuf->Name) {
|
||||
/* elements are in a user-defined buffer object. need to map it */
|
||||
map = ctx->Driver.MapBuffer(ctx,
|
||||
GL_ELEMENT_ARRAY_BUFFER_ARB,
|
||||
GL_READ_ONLY,
|
||||
elementBuf);
|
||||
/* Actual address is the sum of pointers */
|
||||
indices = (const GLvoid *) ADD_POINTERS(map, (const GLubyte *) indices);
|
||||
}
|
||||
|
||||
if (type == GL_UNSIGNED_INT) {
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLuint *) indices)[i] > max)
|
||||
max = ((GLuint *) indices)[i];
|
||||
}
|
||||
else if (type == GL_UNSIGNED_SHORT) {
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLushort *) indices)[i] > max)
|
||||
max = ((GLushort *) indices)[i];
|
||||
}
|
||||
else {
|
||||
ASSERT(type == GL_UNSIGNED_BYTE);
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLubyte *) indices)[i] > max)
|
||||
max = ((GLubyte *) indices)[i];
|
||||
}
|
||||
|
||||
if (map) {
|
||||
ctx->Driver.UnmapBuffer(ctx,
|
||||
GL_ELEMENT_ARRAY_BUFFER_ARB,
|
||||
ctx->Array.ElementArrayBufferObj);
|
||||
}
|
||||
|
||||
return max;
|
||||
}
|
||||
|
||||
|
||||
GLboolean
|
||||
_mesa_validate_DrawElements(GLcontext *ctx,
|
||||
GLenum mode, GLsizei count, GLenum type,
|
||||
|
@ -61,20 +110,15 @@ _mesa_validate_DrawElements(GLcontext *ctx,
|
|||
|
||||
/* Always need vertex positions */
|
||||
if (!ctx->Array.ArrayObj->Vertex.Enabled
|
||||
&& !(ctx->VertexProgram._Enabled && ctx->Array.ArrayObj->VertexAttrib[0].Enabled))
|
||||
&& !(ctx->VertexProgram._Enabled
|
||||
&& ctx->Array.ArrayObj->VertexAttrib[0].Enabled))
|
||||
return GL_FALSE;
|
||||
|
||||
/* Vertex buffer object tests */
|
||||
if (ctx->Array.ElementArrayBufferObj->Name) {
|
||||
/* use indices in the buffer object */
|
||||
GLuint indexBytes;
|
||||
|
||||
/* use indices in the buffer object */
|
||||
if (!ctx->Array.ElementArrayBufferObj->Data) {
|
||||
_mesa_warning(ctx, "DrawElements with empty vertex elements buffer!");
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
/* make sure count doesn't go outside buffer bounds */
|
||||
if (type == GL_UNSIGNED_INT) {
|
||||
indexBytes = count * sizeof(GLuint);
|
||||
}
|
||||
|
@ -86,19 +130,11 @@ _mesa_validate_DrawElements(GLcontext *ctx,
|
|||
indexBytes = count * sizeof(GLushort);
|
||||
}
|
||||
|
||||
if ((GLubyte *) indices + indexBytes >
|
||||
ctx->Array.ElementArrayBufferObj->Data +
|
||||
ctx->Array.ElementArrayBufferObj->Size) {
|
||||
/* make sure count doesn't go outside buffer bounds */
|
||||
if (indexBytes > ctx->Array.ElementArrayBufferObj->Size) {
|
||||
_mesa_warning(ctx, "glDrawElements index out of buffer bounds");
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
/* Actual address is the sum of pointers. Indices may be used below. */
|
||||
if (ctx->Const.CheckArrayBounds) {
|
||||
indices = (const GLvoid *)
|
||||
ADD_POINTERS(ctx->Array.ElementArrayBufferObj->Data,
|
||||
(const GLubyte *) indices);
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* not using a VBO */
|
||||
|
@ -108,24 +144,8 @@ _mesa_validate_DrawElements(GLcontext *ctx,
|
|||
|
||||
if (ctx->Const.CheckArrayBounds) {
|
||||
/* find max array index */
|
||||
GLuint max = 0;
|
||||
GLint i;
|
||||
if (type == GL_UNSIGNED_INT) {
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLuint *) indices)[i] > max)
|
||||
max = ((GLuint *) indices)[i];
|
||||
}
|
||||
else if (type == GL_UNSIGNED_SHORT) {
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLushort *) indices)[i] > max)
|
||||
max = ((GLushort *) indices)[i];
|
||||
}
|
||||
else {
|
||||
ASSERT(type == GL_UNSIGNED_BYTE);
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLubyte *) indices)[i] > max)
|
||||
max = ((GLubyte *) indices)[i];
|
||||
}
|
||||
GLuint max = max_buffer_index(ctx, count, type, indices,
|
||||
ctx->Array.ElementArrayBufferObj);
|
||||
if (max >= ctx->Array._MaxElement) {
|
||||
/* the max element is out of bounds of one or more enabled arrays */
|
||||
return GL_FALSE;
|
||||
|
@ -172,41 +192,41 @@ _mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode,
|
|||
|
||||
/* Always need vertex positions */
|
||||
if (!ctx->Array.ArrayObj->Vertex.Enabled
|
||||
&& !(ctx->VertexProgram._Enabled && ctx->Array.ArrayObj->VertexAttrib[0].Enabled))
|
||||
&& !(ctx->VertexProgram._Enabled
|
||||
&& ctx->Array.ArrayObj->VertexAttrib[0].Enabled))
|
||||
return GL_FALSE;
|
||||
|
||||
/* Vertex buffer object tests */
|
||||
if (ctx->Array.ElementArrayBufferObj->Name) {
|
||||
/* XXX re-use code from above? */
|
||||
/* use indices in the buffer object */
|
||||
GLuint indexBytes;
|
||||
|
||||
if (type == GL_UNSIGNED_INT) {
|
||||
indexBytes = count * sizeof(GLuint);
|
||||
}
|
||||
else if (type == GL_UNSIGNED_BYTE) {
|
||||
indexBytes = count * sizeof(GLubyte);
|
||||
}
|
||||
else {
|
||||
ASSERT(type == GL_UNSIGNED_SHORT);
|
||||
indexBytes = count * sizeof(GLushort);
|
||||
}
|
||||
|
||||
/* make sure count doesn't go outside buffer bounds */
|
||||
if (indexBytes > ctx->Array.ElementArrayBufferObj->Size) {
|
||||
_mesa_warning(ctx, "glDrawRangeElements index out of buffer bounds");
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* not using VBO */
|
||||
/* not using a VBO */
|
||||
if (!indices)
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
if (ctx->Const.CheckArrayBounds) {
|
||||
/* Find max array index.
|
||||
* We don't trust the user's start and end values.
|
||||
*/
|
||||
GLuint max = 0;
|
||||
GLint i;
|
||||
if (type == GL_UNSIGNED_INT) {
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLuint *) indices)[i] > max)
|
||||
max = ((GLuint *) indices)[i];
|
||||
}
|
||||
else if (type == GL_UNSIGNED_SHORT) {
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLushort *) indices)[i] > max)
|
||||
max = ((GLushort *) indices)[i];
|
||||
}
|
||||
else {
|
||||
ASSERT(type == GL_UNSIGNED_BYTE);
|
||||
for (i = 0; i < count; i++)
|
||||
if (((GLubyte *) indices)[i] > max)
|
||||
max = ((GLubyte *) indices)[i];
|
||||
}
|
||||
GLuint max = max_buffer_index(ctx, count, type, indices,
|
||||
ctx->Array.ElementArrayBufferObj);
|
||||
if (max >= ctx->Array._MaxElement) {
|
||||
/* the max element is out of bounds of one or more enabled arrays */
|
||||
return GL_FALSE;
|
||||
|
@ -227,8 +247,9 @@ _mesa_validate_DrawArrays(GLcontext *ctx,
|
|||
{
|
||||
ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE);
|
||||
|
||||
if (count < 0) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE, "glDrawArrays(count)" );
|
||||
if (count <= 0) {
|
||||
if (count < 0)
|
||||
_mesa_error(ctx, GL_INVALID_VALUE, "glDrawArrays(count)" );
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
|
@ -241,7 +262,8 @@ _mesa_validate_DrawArrays(GLcontext *ctx,
|
|||
_mesa_update_state(ctx);
|
||||
|
||||
/* Always need vertex positions */
|
||||
if (!ctx->Array.ArrayObj->Vertex.Enabled && !ctx->Array.ArrayObj->VertexAttrib[0].Enabled)
|
||||
if (!ctx->Array.ArrayObj->Vertex.Enabled
|
||||
&& !ctx->Array.ArrayObj->VertexAttrib[0].Enabled)
|
||||
return GL_FALSE;
|
||||
|
||||
if (ctx->Const.CheckArrayBounds) {
|
||||
|
|
203
reactos/dll/3rdparty/mesa32/src/main/attrib.c
vendored
203
reactos/dll/3rdparty/mesa32/src/main/attrib.c
vendored
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.5.3
|
||||
* Version: 7.0.2
|
||||
*
|
||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
*
|
||||
|
@ -51,6 +51,32 @@
|
|||
#include "math/m_xform.h"
|
||||
|
||||
|
||||
/**
|
||||
* Special struct for saving/restoring texture state (GL_TEXTURE_BIT)
|
||||
*/
|
||||
struct texture_state
|
||||
{
|
||||
struct gl_texture_attrib Texture; /**< The usual context state */
|
||||
|
||||
/** to save per texture object state (wrap modes, filters, etc): */
|
||||
struct gl_texture_object Saved1D[MAX_TEXTURE_UNITS];
|
||||
struct gl_texture_object Saved2D[MAX_TEXTURE_UNITS];
|
||||
struct gl_texture_object Saved3D[MAX_TEXTURE_UNITS];
|
||||
struct gl_texture_object SavedCube[MAX_TEXTURE_UNITS];
|
||||
struct gl_texture_object SavedRect[MAX_TEXTURE_UNITS];
|
||||
|
||||
/**
|
||||
* To save references to texture objects (so they don't get accidentally
|
||||
* deleted while saved in the attribute stack).
|
||||
*/
|
||||
struct gl_texture_object *SavedRef1D[MAX_TEXTURE_UNITS];
|
||||
struct gl_texture_object *SavedRef2D[MAX_TEXTURE_UNITS];
|
||||
struct gl_texture_object *SavedRef3D[MAX_TEXTURE_UNITS];
|
||||
struct gl_texture_object *SavedRefCube[MAX_TEXTURE_UNITS];
|
||||
struct gl_texture_object *SavedRefRect[MAX_TEXTURE_UNITS];
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Allocate a new attribute state node. These nodes have a
|
||||
* "kind" value and a pointer to a struct of state data.
|
||||
|
@ -335,40 +361,48 @@ _mesa_PushAttrib(GLbitfield mask)
|
|||
}
|
||||
|
||||
if (mask & GL_TEXTURE_BIT) {
|
||||
struct gl_texture_attrib *attr;
|
||||
struct texture_state *texstate = CALLOC_STRUCT( texture_state );
|
||||
GLuint u;
|
||||
|
||||
if (!texstate) {
|
||||
_mesa_error(ctx, GL_OUT_OF_MEMORY, "glPushAttrib(GL_TEXTURE_BIT)");
|
||||
goto end;
|
||||
}
|
||||
|
||||
_mesa_lock_context_textures(ctx);
|
||||
/* Bump the texture object reference counts so that they don't
|
||||
* inadvertantly get deleted.
|
||||
|
||||
/* copy/save the bulk of texture state here */
|
||||
_mesa_memcpy(&texstate->Texture, &ctx->Texture, sizeof(ctx->Texture));
|
||||
|
||||
/* Save references to the currently bound texture objects so they don't
|
||||
* accidentally get deleted while referenced in the attribute stack.
|
||||
*/
|
||||
for (u = 0; u < ctx->Const.MaxTextureUnits; u++) {
|
||||
ctx->Texture.Unit[u].Current1D->RefCount++;
|
||||
ctx->Texture.Unit[u].Current2D->RefCount++;
|
||||
ctx->Texture.Unit[u].Current3D->RefCount++;
|
||||
ctx->Texture.Unit[u].CurrentCubeMap->RefCount++;
|
||||
ctx->Texture.Unit[u].CurrentRect->RefCount++;
|
||||
_mesa_reference_texobj(&texstate->SavedRef1D[u], ctx->Texture.Unit[u].Current1D);
|
||||
_mesa_reference_texobj(&texstate->SavedRef2D[u], ctx->Texture.Unit[u].Current2D);
|
||||
_mesa_reference_texobj(&texstate->SavedRef3D[u], ctx->Texture.Unit[u].Current3D);
|
||||
_mesa_reference_texobj(&texstate->SavedRefCube[u], ctx->Texture.Unit[u].CurrentCubeMap);
|
||||
_mesa_reference_texobj(&texstate->SavedRefRect[u], ctx->Texture.Unit[u].CurrentRect);
|
||||
}
|
||||
attr = MALLOC_STRUCT( gl_texture_attrib );
|
||||
MEMCPY( attr, &ctx->Texture, sizeof(struct gl_texture_attrib) );
|
||||
/* copy state of the currently bound texture objects */
|
||||
|
||||
/* copy state/contents of the currently bound texture objects */
|
||||
for (u = 0; u < ctx->Const.MaxTextureUnits; u++) {
|
||||
_mesa_copy_texture_object(&attr->Unit[u].Saved1D,
|
||||
attr->Unit[u].Current1D);
|
||||
_mesa_copy_texture_object(&attr->Unit[u].Saved2D,
|
||||
attr->Unit[u].Current2D);
|
||||
_mesa_copy_texture_object(&attr->Unit[u].Saved3D,
|
||||
attr->Unit[u].Current3D);
|
||||
_mesa_copy_texture_object(&attr->Unit[u].SavedCubeMap,
|
||||
attr->Unit[u].CurrentCubeMap);
|
||||
_mesa_copy_texture_object(&attr->Unit[u].SavedRect,
|
||||
attr->Unit[u].CurrentRect);
|
||||
_mesa_copy_texture_object(&texstate->Saved1D[u],
|
||||
ctx->Texture.Unit[u].Current1D);
|
||||
_mesa_copy_texture_object(&texstate->Saved2D[u],
|
||||
ctx->Texture.Unit[u].Current2D);
|
||||
_mesa_copy_texture_object(&texstate->Saved3D[u],
|
||||
ctx->Texture.Unit[u].Current3D);
|
||||
_mesa_copy_texture_object(&texstate->SavedCube[u],
|
||||
ctx->Texture.Unit[u].CurrentCubeMap);
|
||||
_mesa_copy_texture_object(&texstate->SavedRect[u],
|
||||
ctx->Texture.Unit[u].CurrentRect);
|
||||
}
|
||||
|
||||
_mesa_unlock_context_textures(ctx);
|
||||
|
||||
newnode = new_attrib_node( GL_TEXTURE_BIT );
|
||||
newnode->data = attr;
|
||||
newnode->data = texstate;
|
||||
newnode->next = head;
|
||||
head = newnode;
|
||||
}
|
||||
|
@ -404,6 +438,7 @@ _mesa_PushAttrib(GLbitfield mask)
|
|||
head = newnode;
|
||||
}
|
||||
|
||||
end:
|
||||
ctx->AttribStack[ctx->AttribStackDepth] = head;
|
||||
ctx->AttribStackDepth++;
|
||||
}
|
||||
|
@ -613,14 +648,19 @@ pop_enable_group(GLcontext *ctx, const struct gl_enable_attrib *enable)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Pop/restore texture attribute/group state.
|
||||
*/
|
||||
static void
|
||||
pop_texture_group(GLcontext *ctx, const struct gl_texture_attrib *texAttrib)
|
||||
pop_texture_group(GLcontext *ctx, struct texture_state *texstate)
|
||||
{
|
||||
GLuint u;
|
||||
|
||||
_mesa_lock_context_textures(ctx);
|
||||
|
||||
for (u = 0; u < ctx->Const.MaxTextureUnits; u++) {
|
||||
const struct gl_texture_unit *unit = &texAttrib->Unit[u];
|
||||
GLuint i;
|
||||
const struct gl_texture_unit *unit = &texstate->Texture.Unit[u];
|
||||
GLuint tgt;
|
||||
|
||||
_mesa_ActiveTextureARB(GL_TEXTURE0_ARB + u);
|
||||
_mesa_set_enable(ctx, GL_TEXTURE_1D,
|
||||
|
@ -713,41 +753,44 @@ pop_texture_group(GLcontext *ctx, const struct gl_texture_attrib *texAttrib)
|
|||
1 << unit->Combine.ScaleShiftA);
|
||||
}
|
||||
|
||||
/* Restore texture object state */
|
||||
for (i = 0; i < NUM_TEXTURE_TARGETS; i++) {
|
||||
GLenum target = 0;
|
||||
/* Restore texture object state for each target */
|
||||
for (tgt = 0; tgt < NUM_TEXTURE_TARGETS; tgt++) {
|
||||
const struct gl_texture_object *obj = NULL;
|
||||
GLfloat bordColor[4];
|
||||
GLenum target;
|
||||
|
||||
switch (i) {
|
||||
case 0:
|
||||
target = GL_TEXTURE_1D;
|
||||
obj = &unit->Saved1D;
|
||||
switch (tgt) {
|
||||
case TEXTURE_1D_INDEX:
|
||||
obj = &texstate->Saved1D[u];
|
||||
ASSERT(obj->Target == GL_TEXTURE_1D);
|
||||
break;
|
||||
case 1:
|
||||
target = GL_TEXTURE_2D;
|
||||
obj = &unit->Saved2D;
|
||||
case TEXTURE_2D_INDEX:
|
||||
obj = &texstate->Saved2D[u];
|
||||
ASSERT(obj->Target == GL_TEXTURE_2D);
|
||||
break;
|
||||
case 2:
|
||||
target = GL_TEXTURE_3D;
|
||||
obj = &unit->Saved3D;
|
||||
case TEXTURE_3D_INDEX:
|
||||
obj = &texstate->Saved3D[u];
|
||||
ASSERT(obj->Target == GL_TEXTURE_3D);
|
||||
break;
|
||||
case 3:
|
||||
case TEXTURE_CUBE_INDEX:
|
||||
if (!ctx->Extensions.ARB_texture_cube_map)
|
||||
continue;
|
||||
target = GL_TEXTURE_CUBE_MAP_ARB;
|
||||
obj = &unit->SavedCubeMap;
|
||||
obj = &texstate->SavedCube[u];
|
||||
ASSERT(obj->Target == GL_TEXTURE_CUBE_MAP_ARB);
|
||||
break;
|
||||
case 4:
|
||||
case TEXTURE_RECT_INDEX:
|
||||
if (!ctx->Extensions.NV_texture_rectangle)
|
||||
continue;
|
||||
target = GL_TEXTURE_RECTANGLE_NV;
|
||||
obj = &unit->SavedRect;
|
||||
obj = &texstate->SavedRect[u];
|
||||
ASSERT(obj->Target == GL_TEXTURE_RECTANGLE_NV);
|
||||
break;
|
||||
default:
|
||||
; /* silence warnings */
|
||||
_mesa_problem(ctx, "bad texture index in pop_texture_group");
|
||||
continue;
|
||||
}
|
||||
|
||||
target = obj->Target;
|
||||
|
||||
_mesa_BindTexture(target, obj->Name);
|
||||
|
||||
bordColor[0] = CHAN_TO_FLOAT(obj->BorderColor[0]);
|
||||
|
@ -782,23 +825,19 @@ pop_texture_group(GLcontext *ctx, const struct gl_texture_attrib *texAttrib)
|
|||
_mesa_TexParameterf(target, GL_SHADOW_AMBIENT_SGIX,
|
||||
obj->ShadowAmbient);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
_mesa_ActiveTextureARB(GL_TEXTURE0_ARB
|
||||
+ texAttrib->CurrentUnit);
|
||||
|
||||
/* "un-bump" the texture object reference counts. We did that so they
|
||||
* wouldn't inadvertantly get deleted while they were still referenced
|
||||
* inside the attribute state stack.
|
||||
*/
|
||||
for (u = 0; u < ctx->Const.MaxTextureUnits; u++) {
|
||||
ctx->Texture.Unit[u].Current1D->RefCount--;
|
||||
ctx->Texture.Unit[u].Current2D->RefCount--;
|
||||
ctx->Texture.Unit[u].Current3D->RefCount--;
|
||||
ctx->Texture.Unit[u].CurrentCubeMap->RefCount--;
|
||||
ctx->Texture.Unit[u].CurrentRect->RefCount--;
|
||||
/* remove saved references to the texture objects */
|
||||
_mesa_reference_texobj(&texstate->SavedRef1D[u], NULL);
|
||||
_mesa_reference_texobj(&texstate->SavedRef2D[u], NULL);
|
||||
_mesa_reference_texobj(&texstate->SavedRef3D[u], NULL);
|
||||
_mesa_reference_texobj(&texstate->SavedRefCube[u], NULL);
|
||||
_mesa_reference_texobj(&texstate->SavedRefRect[u], NULL);
|
||||
}
|
||||
|
||||
_mesa_ActiveTextureARB(GL_TEXTURE0_ARB + texstate->Texture.CurrentUnit);
|
||||
|
||||
_mesa_unlock_context_textures(ctx);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1067,7 +1106,8 @@ _mesa_PopAttrib(void)
|
|||
(GLint) point->CoordReplace[u]);
|
||||
}
|
||||
_mesa_set_enable(ctx, GL_POINT_SPRITE_NV,point->PointSprite);
|
||||
_mesa_PointParameteriNV(GL_POINT_SPRITE_R_MODE_NV,
|
||||
if (ctx->Extensions.NV_point_sprite)
|
||||
_mesa_PointParameteriNV(GL_POINT_SPRITE_R_MODE_NV,
|
||||
ctx->Point.SpriteRMode);
|
||||
_mesa_PointParameterfEXT(GL_POINT_SPRITE_COORD_ORIGIN,
|
||||
(GLfloat)ctx->Point.SpriteOrigin);
|
||||
|
@ -1177,9 +1217,9 @@ _mesa_PopAttrib(void)
|
|||
case GL_TEXTURE_BIT:
|
||||
/* Take care of texture object reference counters */
|
||||
{
|
||||
const struct gl_texture_attrib *texture;
|
||||
texture = (const struct gl_texture_attrib *) attr->data;
|
||||
pop_texture_group(ctx, texture);
|
||||
struct texture_state *texstate
|
||||
= (struct texture_state *) attr->data;
|
||||
pop_texture_group(ctx, texstate);
|
||||
ctx->NewState |= _NEW_TEXTURE;
|
||||
}
|
||||
break;
|
||||
|
@ -1401,6 +1441,41 @@ _mesa_PopClientAttrib(void)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
_mesa_free_attrib_data(GLcontext *ctx)
|
||||
{
|
||||
while (ctx->AttribStackDepth > 0) {
|
||||
struct gl_attrib_node *attr, *next;
|
||||
|
||||
ctx->AttribStackDepth--;
|
||||
attr = ctx->AttribStack[ctx->AttribStackDepth];
|
||||
|
||||
while (attr) {
|
||||
if (attr->kind == GL_TEXTURE_BIT) {
|
||||
struct texture_state *texstate = (struct texture_state*)attr->data;
|
||||
GLuint u;
|
||||
/* clear references to the saved texture objects */
|
||||
for (u = 0; u < ctx->Const.MaxTextureUnits; u++) {
|
||||
_mesa_reference_texobj(&texstate->SavedRef1D[u], NULL);
|
||||
_mesa_reference_texobj(&texstate->SavedRef2D[u], NULL);
|
||||
_mesa_reference_texobj(&texstate->SavedRef3D[u], NULL);
|
||||
_mesa_reference_texobj(&texstate->SavedRefCube[u], NULL);
|
||||
_mesa_reference_texobj(&texstate->SavedRefRect[u], NULL);
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* any other chunks of state that requires special handling? */
|
||||
}
|
||||
|
||||
next = attr->next;
|
||||
_mesa_free(attr->data);
|
||||
_mesa_free(attr);
|
||||
attr = next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void _mesa_init_attrib( GLcontext *ctx )
|
||||
{
|
||||
/* Renderer and client attribute stacks */
|
||||
|
|
|
@ -58,10 +58,14 @@ _mesa_PopClientAttrib( void );
|
|||
extern void
|
||||
_mesa_init_attrib( GLcontext *ctx );
|
||||
|
||||
extern void
|
||||
_mesa_free_attrib_data( GLcontext *ctx );
|
||||
|
||||
#else
|
||||
|
||||
/** No-op */
|
||||
#define _mesa_init_attrib( c ) ((void)0)
|
||||
#define _mesa_free_attrib_data( c ) ((void)0)
|
||||
|
||||
#endif
|
||||
|
||||
|
|
108
reactos/dll/3rdparty/mesa32/src/main/context.c
vendored
108
reactos/dll/3rdparty/mesa32/src/main/context.c
vendored
|
@ -6,7 +6,7 @@
|
|||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 7.0
|
||||
* Version: 7.0.2
|
||||
*
|
||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
*
|
||||
|
@ -467,17 +467,12 @@ alloc_shared_state( GLcontext *ctx )
|
|||
if (!ss->DefaultRect)
|
||||
goto cleanup;
|
||||
|
||||
/* Effectively bind the default textures to all texture units */
|
||||
ss->Default1D->RefCount += MAX_TEXTURE_IMAGE_UNITS;
|
||||
ss->Default2D->RefCount += MAX_TEXTURE_IMAGE_UNITS;
|
||||
ss->Default3D->RefCount += MAX_TEXTURE_IMAGE_UNITS;
|
||||
ss->DefaultCubeMap->RefCount += MAX_TEXTURE_IMAGE_UNITS;
|
||||
ss->DefaultRect->RefCount += MAX_TEXTURE_IMAGE_UNITS;
|
||||
/* sanity check */
|
||||
assert(ss->Default1D->RefCount == 1);
|
||||
|
||||
_glthread_INIT_MUTEX(ss->TexMutex);
|
||||
ss->TextureStateStamp = 0;
|
||||
|
||||
|
||||
#if FEATURE_EXT_framebuffer_object
|
||||
ss->FrameBuffers = _mesa_NewHashTable();
|
||||
if (!ss->FrameBuffers)
|
||||
|
@ -487,10 +482,9 @@ alloc_shared_state( GLcontext *ctx )
|
|||
goto cleanup;
|
||||
#endif
|
||||
|
||||
|
||||
return GL_TRUE;
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
/* Ran out of memory at some point. Free everything and return NULL */
|
||||
if (ss->DisplayList)
|
||||
_mesa_DeleteHashTable(ss->DisplayList);
|
||||
|
@ -634,6 +628,33 @@ delete_shader_cb(GLuint id, void *data, void *userData)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for deleting a framebuffer object. Called by _mesa_HashDeleteAll()
|
||||
*/
|
||||
static void
|
||||
delete_framebuffer_cb(GLuint id, void *data, void *userData)
|
||||
{
|
||||
struct gl_framebuffer *fb = (struct gl_framebuffer *) data;
|
||||
/* The fact that the framebuffer is in the hashtable means its refcount
|
||||
* is one, but we're removing from the hashtable now. So clear refcount.
|
||||
*/
|
||||
/*assert(fb->RefCount == 1);*/
|
||||
fb->RefCount = 0;
|
||||
fb->Delete(fb);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for deleting a renderbuffer object. Called by _mesa_HashDeleteAll()
|
||||
*/
|
||||
static void
|
||||
delete_renderbuffer_cb(GLuint id, void *data, void *userData)
|
||||
{
|
||||
struct gl_renderbuffer *rb = (struct gl_renderbuffer *) data;
|
||||
rb->RefCount = 0; /* see comment for FBOs above */
|
||||
rb->Delete(rb);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Deallocate a shared state object and all children structures.
|
||||
|
@ -656,20 +677,6 @@ free_shared_state( GLcontext *ctx, struct gl_shared_state *ss )
|
|||
_mesa_HashDeleteAll(ss->DisplayList, delete_displaylist_cb, ctx);
|
||||
_mesa_DeleteHashTable(ss->DisplayList);
|
||||
|
||||
/*
|
||||
* Free texture objects
|
||||
*/
|
||||
ASSERT(ctx->Driver.DeleteTexture);
|
||||
/* the default textures */
|
||||
ctx->Driver.DeleteTexture(ctx, ss->Default1D);
|
||||
ctx->Driver.DeleteTexture(ctx, ss->Default2D);
|
||||
ctx->Driver.DeleteTexture(ctx, ss->Default3D);
|
||||
ctx->Driver.DeleteTexture(ctx, ss->DefaultCubeMap);
|
||||
ctx->Driver.DeleteTexture(ctx, ss->DefaultRect);
|
||||
/* all other textures */
|
||||
_mesa_HashDeleteAll(ss->TexObjects, delete_texture_cb, ctx);
|
||||
_mesa_DeleteHashTable(ss->TexObjects);
|
||||
|
||||
#if defined(FEATURE_NV_vertex_program) || defined(FEATURE_NV_fragment_program)
|
||||
_mesa_HashDeleteAll(ss->Programs, delete_program_cb, ctx);
|
||||
_mesa_DeleteHashTable(ss->Programs);
|
||||
|
@ -701,10 +708,27 @@ free_shared_state( GLcontext *ctx, struct gl_shared_state *ss )
|
|||
#endif
|
||||
|
||||
#if FEATURE_EXT_framebuffer_object
|
||||
_mesa_HashDeleteAll(ss->FrameBuffers, delete_framebuffer_cb, ctx);
|
||||
_mesa_DeleteHashTable(ss->FrameBuffers);
|
||||
_mesa_HashDeleteAll(ss->RenderBuffers, delete_renderbuffer_cb, ctx);
|
||||
_mesa_DeleteHashTable(ss->RenderBuffers);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Free texture objects (after FBOs since some textures might have
|
||||
* been bound to FBOs).
|
||||
*/
|
||||
ASSERT(ctx->Driver.DeleteTexture);
|
||||
/* the default textures */
|
||||
ctx->Driver.DeleteTexture(ctx, ss->Default1D);
|
||||
ctx->Driver.DeleteTexture(ctx, ss->Default2D);
|
||||
ctx->Driver.DeleteTexture(ctx, ss->Default3D);
|
||||
ctx->Driver.DeleteTexture(ctx, ss->DefaultCubeMap);
|
||||
ctx->Driver.DeleteTexture(ctx, ss->DefaultRect);
|
||||
/* all other textures */
|
||||
_mesa_HashDeleteAll(ss->TexObjects, delete_texture_cb, ctx);
|
||||
_mesa_DeleteHashTable(ss->TexObjects);
|
||||
|
||||
_glthread_DESTROY_MUTEX(ss->Mutex);
|
||||
|
||||
_mesa_free(ss);
|
||||
|
@ -1157,18 +1181,20 @@ _mesa_create_context(const GLvisual *visual,
|
|||
void
|
||||
_mesa_free_context_data( GLcontext *ctx )
|
||||
{
|
||||
/* if we're destroying the current context, unbind it first */
|
||||
if (ctx == _mesa_get_current_context()) {
|
||||
_mesa_make_current(NULL, NULL, NULL);
|
||||
}
|
||||
else {
|
||||
/* unreference WinSysDraw/Read buffers */
|
||||
_mesa_unreference_framebuffer(&ctx->WinSysDrawBuffer);
|
||||
_mesa_unreference_framebuffer(&ctx->WinSysReadBuffer);
|
||||
_mesa_unreference_framebuffer(&ctx->DrawBuffer);
|
||||
_mesa_unreference_framebuffer(&ctx->ReadBuffer);
|
||||
if (!_mesa_get_current_context()){
|
||||
/* No current context, but we may need one in order to delete
|
||||
* texture objs, etc. So temporarily bind the context now.
|
||||
*/
|
||||
_mesa_make_current(ctx, NULL, NULL);
|
||||
}
|
||||
|
||||
/* unreference WinSysDraw/Read buffers */
|
||||
_mesa_unreference_framebuffer(&ctx->WinSysDrawBuffer);
|
||||
_mesa_unreference_framebuffer(&ctx->WinSysReadBuffer);
|
||||
_mesa_unreference_framebuffer(&ctx->DrawBuffer);
|
||||
_mesa_unreference_framebuffer(&ctx->ReadBuffer);
|
||||
|
||||
_mesa_free_attrib_data(ctx);
|
||||
_mesa_free_lighting_data( ctx );
|
||||
_mesa_free_eval_data( ctx );
|
||||
_mesa_free_texture_data( ctx );
|
||||
|
@ -1200,6 +1226,11 @@ _mesa_free_context_data( GLcontext *ctx )
|
|||
|
||||
if (ctx->Extensions.String)
|
||||
_mesa_free((void *) ctx->Extensions.String);
|
||||
|
||||
/* unbind the context if it's currently bound */
|
||||
if (ctx == _mesa_get_current_context()) {
|
||||
_mesa_make_current(NULL, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1431,8 +1462,6 @@ void
|
|||
_mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
|
||||
GLframebuffer *readBuffer )
|
||||
{
|
||||
GET_CURRENT_CONTEXT(oldCtx);
|
||||
|
||||
if (MESA_VERBOSE & VERBOSE_API)
|
||||
_mesa_debug(newCtx, "_mesa_make_current()\n");
|
||||
|
||||
|
@ -1457,13 +1486,6 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
|
|||
_glapi_set_context((void *) newCtx);
|
||||
ASSERT(_mesa_get_current_context() == newCtx);
|
||||
|
||||
if (oldCtx) {
|
||||
_mesa_unreference_framebuffer(&oldCtx->WinSysDrawBuffer);
|
||||
_mesa_unreference_framebuffer(&oldCtx->WinSysReadBuffer);
|
||||
_mesa_unreference_framebuffer(&oldCtx->DrawBuffer);
|
||||
_mesa_unreference_framebuffer(&oldCtx->ReadBuffer);
|
||||
}
|
||||
|
||||
if (!newCtx) {
|
||||
_glapi_set_dispatch(NULL); /* none current */
|
||||
}
|
||||
|
|
6
reactos/dll/3rdparty/mesa32/src/main/dlist.c
vendored
6
reactos/dll/3rdparty/mesa32/src/main/dlist.c
vendored
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 7.0.1
|
||||
* Version: 7.0.2
|
||||
*
|
||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
*
|
||||
|
@ -5737,7 +5737,7 @@ execute_list(GLcontext *ctx, GLuint list)
|
|||
if (!dlist)
|
||||
return;
|
||||
|
||||
ctx->ListState.CallStack[ctx->ListState.CallDepth++] = dlist;
|
||||
ctx->ListState.CallDepth++;
|
||||
|
||||
if (ctx->Driver.BeginCallList)
|
||||
ctx->Driver.BeginCallList(ctx, dlist);
|
||||
|
@ -6629,7 +6629,7 @@ execute_list(GLcontext *ctx, GLuint list)
|
|||
if (ctx->Driver.EndCallList)
|
||||
ctx->Driver.EndCallList(ctx);
|
||||
|
||||
ctx->ListState.CallStack[ctx->ListState.CallDepth--] = NULL;
|
||||
ctx->ListState.CallDepth--;
|
||||
}
|
||||
|
||||
|
||||
|
|
13
reactos/dll/3rdparty/mesa32/src/main/enable.c
vendored
13
reactos/dll/3rdparty/mesa32/src/main/enable.c
vendored
|
@ -364,6 +364,10 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
|||
case GL_LIGHTING:
|
||||
if (ctx->Light.Enabled == state)
|
||||
return;
|
||||
if (ctx->Light.Enabled && ctx->Light.Model.TwoSide)
|
||||
ctx->_TriangleCaps |= DD_TRI_LIGHT_TWOSIDE;
|
||||
else
|
||||
ctx->_TriangleCaps &= ~DD_TRI_LIGHT_TWOSIDE;
|
||||
FLUSH_VERTICES(ctx, _NEW_LIGHT);
|
||||
ctx->Light.Enabled = state;
|
||||
break;
|
||||
|
@ -372,12 +376,14 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
|||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_LINE);
|
||||
ctx->Line.SmoothFlag = state;
|
||||
ctx->_TriangleCaps ^= DD_LINE_SMOOTH;
|
||||
break;
|
||||
case GL_LINE_STIPPLE:
|
||||
if (ctx->Line.StippleFlag == state)
|
||||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_LINE);
|
||||
ctx->Line.StippleFlag = state;
|
||||
ctx->_TriangleCaps ^= DD_LINE_STIPPLE;
|
||||
break;
|
||||
case GL_INDEX_LOGIC_OP:
|
||||
if (ctx->Color.IndexLogicOpEnabled == state)
|
||||
|
@ -516,18 +522,21 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
|||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_POINT);
|
||||
ctx->Point.SmoothFlag = state;
|
||||
ctx->_TriangleCaps ^= DD_POINT_SMOOTH;
|
||||
break;
|
||||
case GL_POLYGON_SMOOTH:
|
||||
if (ctx->Polygon.SmoothFlag == state)
|
||||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_POLYGON);
|
||||
ctx->Polygon.SmoothFlag = state;
|
||||
ctx->_TriangleCaps ^= DD_TRI_SMOOTH;
|
||||
break;
|
||||
case GL_POLYGON_STIPPLE:
|
||||
if (ctx->Polygon.StippleFlag == state)
|
||||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_POLYGON);
|
||||
ctx->Polygon.StippleFlag = state;
|
||||
ctx->_TriangleCaps ^= DD_TRI_STIPPLE;
|
||||
break;
|
||||
case GL_POLYGON_OFFSET_POINT:
|
||||
if (ctx->Polygon.OffsetPoint == state)
|
||||
|
@ -877,6 +886,10 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
|||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_STENCIL);
|
||||
ctx->Stencil.TestTwoSide = state;
|
||||
if (state)
|
||||
ctx->_TriangleCaps |= DD_TRI_TWOSTENCIL;
|
||||
else
|
||||
ctx->_TriangleCaps &= ~DD_TRI_TWOSTENCIL;
|
||||
break;
|
||||
|
||||
#if FEATURE_ARB_fragment_program
|
||||
|
|
1208
reactos/dll/3rdparty/mesa32/src/main/enums.c
vendored
1208
reactos/dll/3rdparty/mesa32/src/main/enums.c
vendored
File diff suppressed because it is too large
Load diff
27
reactos/dll/3rdparty/mesa32/src/main/fbobject.c
vendored
27
reactos/dll/3rdparty/mesa32/src/main/fbobject.c
vendored
|
@ -150,22 +150,18 @@ _mesa_remove_attachment(GLcontext *ctx, struct gl_renderbuffer_attachment *att)
|
|||
{
|
||||
if (att->Type == GL_TEXTURE) {
|
||||
ASSERT(att->Texture);
|
||||
att->Texture->RefCount--;
|
||||
if (att->Texture->RefCount == 0) {
|
||||
ctx->Driver.DeleteTexture(ctx, att->Texture);
|
||||
if (ctx->Driver.FinishRenderTexture) {
|
||||
/* tell driver we're done rendering to this texobj */
|
||||
ctx->Driver.FinishRenderTexture(ctx, att);
|
||||
}
|
||||
else {
|
||||
/* tell driver that we're done rendering to this texture. */
|
||||
if (ctx->Driver.FinishRenderTexture) {
|
||||
ctx->Driver.FinishRenderTexture(ctx, att);
|
||||
}
|
||||
}
|
||||
att->Texture = NULL;
|
||||
_mesa_reference_texobj(&att->Texture, NULL); /* unbind */
|
||||
ASSERT(!att->Texture);
|
||||
}
|
||||
if (att->Type == GL_TEXTURE || att->Type == GL_RENDERBUFFER_EXT) {
|
||||
ASSERT(att->Renderbuffer);
|
||||
ASSERT(!att->Texture);
|
||||
_mesa_reference_renderbuffer(&att->Renderbuffer, NULL);
|
||||
_mesa_reference_renderbuffer(&att->Renderbuffer, NULL); /* unbind */
|
||||
ASSERT(!att->Renderbuffer);
|
||||
}
|
||||
att->Type = GL_NONE;
|
||||
att->Complete = GL_TRUE;
|
||||
|
@ -191,8 +187,8 @@ _mesa_set_texture_attachment(GLcontext *ctx,
|
|||
/* new attachment */
|
||||
_mesa_remove_attachment(ctx, att);
|
||||
att->Type = GL_TEXTURE;
|
||||
att->Texture = texObj;
|
||||
texObj->RefCount++;
|
||||
assert(!att->Texture);
|
||||
_mesa_reference_texobj(&att->Texture, texObj);
|
||||
}
|
||||
|
||||
/* always update these fields */
|
||||
|
@ -983,6 +979,7 @@ _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer)
|
|||
return;
|
||||
}
|
||||
_mesa_HashInsert(ctx->Shared->FrameBuffers, framebuffer, newFb);
|
||||
ASSERT(newFb->RefCount == 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -1006,8 +1003,10 @@ _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer)
|
|||
if (bindDrawBuf) {
|
||||
/* check if old FB had any texture attachments */
|
||||
check_end_texture_render(ctx, ctx->DrawBuffer);
|
||||
/* check if time to delete this framebuffer */
|
||||
|
||||
/* bind new drawing buffer */
|
||||
_mesa_reference_framebuffer(&ctx->DrawBuffer, newFb);
|
||||
|
||||
if (newFb->Name != 0) {
|
||||
/* check if newly bound framebuffer has any texture attachments */
|
||||
check_begin_texture_render(ctx, newFb);
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include "fbobject.h"
|
||||
#include "framebuffer.h"
|
||||
#include "renderbuffer.h"
|
||||
#include "texobj.h"
|
||||
|
||||
|
||||
|
||||
|
@ -190,17 +191,11 @@ _mesa_free_framebuffer_data(struct gl_framebuffer *fb)
|
|||
_mesa_reference_renderbuffer(&att->Renderbuffer, NULL);
|
||||
}
|
||||
if (att->Texture) {
|
||||
/* render to texture */
|
||||
att->Texture->RefCount--;
|
||||
if (att->Texture->RefCount == 0) {
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
if (ctx) {
|
||||
ctx->Driver.DeleteTexture(ctx, att->Texture);
|
||||
}
|
||||
}
|
||||
_mesa_reference_texobj(&att->Texture, NULL);
|
||||
}
|
||||
ASSERT(!att->Renderbuffer);
|
||||
ASSERT(!att->Texture);
|
||||
att->Type = GL_NONE;
|
||||
att->Texture = NULL;
|
||||
}
|
||||
|
||||
/* unbind _Depth/_StencilBuffer to decr ref counts */
|
||||
|
|
|
@ -237,7 +237,7 @@
|
|||
#endif
|
||||
|
||||
|
||||
#if !defined __GNUC__ || __GNUC__ < 3
|
||||
#if (!defined(__GNUC__) || __GNUC__ < 3) && !defined(__IBMC__)
|
||||
# define __builtin_expect(x, y) x
|
||||
#endif
|
||||
|
||||
|
|
2
reactos/dll/3rdparty/mesa32/src/main/image.c
vendored
2
reactos/dll/3rdparty/mesa32/src/main/image.c
vendored
|
@ -3794,7 +3794,7 @@ _mesa_pack_stencil_span( const GLcontext *ctx, GLuint n,
|
|||
GLint *dst = (GLint *) dest;
|
||||
GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
*dst++ = (GLint) source[i];
|
||||
dst[i] = (GLint) source[i];
|
||||
}
|
||||
if (dstPacking->SwapBytes) {
|
||||
_mesa_swap4( (GLuint *) dst, n );
|
||||
|
|
9
reactos/dll/3rdparty/mesa32/src/main/light.c
vendored
9
reactos/dll/3rdparty/mesa32/src/main/light.c
vendored
|
@ -53,6 +53,11 @@ _mesa_ShadeModel( GLenum mode )
|
|||
|
||||
FLUSH_VERTICES(ctx, _NEW_LIGHT);
|
||||
ctx->Light.ShadeModel = mode;
|
||||
if (mode == GL_FLAT)
|
||||
ctx->_TriangleCaps |= DD_FLATSHADE;
|
||||
else
|
||||
ctx->_TriangleCaps &= ~DD_FLATSHADE;
|
||||
|
||||
if (ctx->Driver.ShadeModel)
|
||||
ctx->Driver.ShadeModel( ctx, mode );
|
||||
}
|
||||
|
@ -441,6 +446,10 @@ _mesa_LightModelfv( GLenum pname, const GLfloat *params )
|
|||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_LIGHT);
|
||||
ctx->Light.Model.TwoSide = newbool;
|
||||
if (ctx->Light.Enabled && ctx->Light.Model.TwoSide)
|
||||
ctx->_TriangleCaps |= DD_TRI_LIGHT_TWOSIDE;
|
||||
else
|
||||
ctx->_TriangleCaps &= ~DD_TRI_LIGHT_TWOSIDE;
|
||||
break;
|
||||
case GL_LIGHT_MODEL_COLOR_CONTROL:
|
||||
if (params[0] == (GLfloat) GL_SINGLE_COLOR)
|
||||
|
|
5
reactos/dll/3rdparty/mesa32/src/main/lines.c
vendored
5
reactos/dll/3rdparty/mesa32/src/main/lines.c
vendored
|
@ -59,6 +59,11 @@ _mesa_LineWidth( GLfloat width )
|
|||
ctx->Const.MinLineWidth,
|
||||
ctx->Const.MaxLineWidth);
|
||||
|
||||
if (width != 1.0F)
|
||||
ctx->_TriangleCaps |= DD_LINE_WIDTH;
|
||||
else
|
||||
ctx->_TriangleCaps &= ~DD_LINE_WIDTH;
|
||||
|
||||
if (ctx->Driver.LineWidth)
|
||||
ctx->Driver.LineWidth(ctx, width);
|
||||
}
|
||||
|
|
|
@ -1523,12 +1523,6 @@ struct gl_texture_unit
|
|||
|
||||
struct gl_texture_object *_Current; /**< Points to really enabled tex obj */
|
||||
|
||||
struct gl_texture_object Saved1D; /**< only used by glPush/PopAttrib */
|
||||
struct gl_texture_object Saved2D;
|
||||
struct gl_texture_object Saved3D;
|
||||
struct gl_texture_object SavedCubeMap;
|
||||
struct gl_texture_object SavedRect;
|
||||
|
||||
/* GL_SGI_texture_color_table */
|
||||
struct gl_color_table ColorTable;
|
||||
struct gl_color_table ProxyColorTable;
|
||||
|
@ -2848,7 +2842,6 @@ struct mesa_display_list
|
|||
*/
|
||||
struct gl_dlist_state
|
||||
{
|
||||
struct mesa_display_list *CallStack[MAX_LIST_NESTING];
|
||||
GLuint CallDepth; /**< Current recursion calling depth */
|
||||
|
||||
struct mesa_display_list *CurrentList;
|
||||
|
|
|
@ -123,9 +123,15 @@ _mesa_PointParameterfvEXT( GLenum pname, const GLfloat *params)
|
|||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_POINT);
|
||||
COPY_3V(ctx->Point.Params, params);
|
||||
|
||||
ctx->Point._Attenuated = (ctx->Point.Params[0] != 1.0 ||
|
||||
ctx->Point.Params[1] != 0.0 ||
|
||||
ctx->Point.Params[2] != 0.0);
|
||||
|
||||
if (ctx->Point._Attenuated)
|
||||
ctx->_TriangleCaps |= DD_POINT_ATTEN;
|
||||
else
|
||||
ctx->_TriangleCaps &= ~DD_POINT_ATTEN;
|
||||
}
|
||||
else {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM,
|
||||
|
|
|
@ -167,6 +167,11 @@ _mesa_PolygonMode( GLenum face, GLenum mode )
|
|||
return;
|
||||
}
|
||||
|
||||
if (ctx->Polygon.FrontMode == GL_FILL && ctx->Polygon.BackMode == GL_FILL)
|
||||
ctx->_TriangleCaps &= ~DD_TRI_UNFILLED;
|
||||
else
|
||||
ctx->_TriangleCaps |= DD_TRI_UNFILLED;
|
||||
|
||||
if (ctx->Driver.PolygonMode)
|
||||
ctx->Driver.PolygonMode(ctx, face, mode);
|
||||
}
|
||||
|
|
43
reactos/dll/3rdparty/mesa32/src/main/state.c
vendored
43
reactos/dll/3rdparty/mesa32/src/main/state.c
vendored
|
@ -812,6 +812,9 @@ _mesa_init_exec_table(struct _glapi_table *exec)
|
|||
SET_ProgramEnvParameters4fvEXT(exec, _mesa_ProgramEnvParameters4fvEXT);
|
||||
SET_ProgramLocalParameters4fvEXT(exec, _mesa_ProgramLocalParameters4fvEXT);
|
||||
#endif
|
||||
|
||||
/* GL_ATI_separate_stencil */
|
||||
SET_StencilFuncSeparateATI(exec, _mesa_StencilFuncSeparateATI);
|
||||
}
|
||||
|
||||
|
||||
|
@ -821,6 +824,16 @@ _mesa_init_exec_table(struct _glapi_table *exec)
|
|||
/*@{*/
|
||||
|
||||
|
||||
static void
|
||||
update_separate_specular( GLcontext *ctx )
|
||||
{
|
||||
if (NEED_SECONDARY_COLOR(ctx))
|
||||
ctx->_TriangleCaps |= DD_SEPARATE_SPECULAR;
|
||||
else
|
||||
ctx->_TriangleCaps &= ~DD_SEPARATE_SPECULAR;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update state dependent on vertex arrays.
|
||||
*/
|
||||
|
@ -1045,6 +1058,26 @@ update_color(GLcontext *ctx)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* Check polygon state and set DD_TRI_CULL_FRONT_BACK and/or DD_TRI_OFFSET
|
||||
* in ctx->_TriangleCaps if needed.
|
||||
*/
|
||||
static void
|
||||
update_polygon( GLcontext *ctx )
|
||||
{
|
||||
ctx->_TriangleCaps &= ~(DD_TRI_CULL_FRONT_BACK | DD_TRI_OFFSET);
|
||||
|
||||
if (ctx->Polygon.CullFlag && ctx->Polygon.CullFaceMode == GL_FRONT_AND_BACK)
|
||||
ctx->_TriangleCaps |= DD_TRI_CULL_FRONT_BACK;
|
||||
|
||||
/* Any Polygon offsets enabled? */
|
||||
if (ctx->Polygon.OffsetPoint ||
|
||||
ctx->Polygon.OffsetLine ||
|
||||
ctx->Polygon.OffsetFill) {
|
||||
ctx->_TriangleCaps |= DD_TRI_OFFSET;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update the ctx->_TriangleCaps bitfield.
|
||||
|
@ -1052,6 +1085,7 @@ update_color(GLcontext *ctx)
|
|||
* This function must be called after other update_*() functions since
|
||||
* there are dependencies on some other derived values.
|
||||
*/
|
||||
#if 0
|
||||
static void
|
||||
update_tricaps(GLcontext *ctx, GLbitfield new_state)
|
||||
{
|
||||
|
@ -1117,6 +1151,7 @@ update_tricaps(GLcontext *ctx, GLbitfield new_state)
|
|||
if (ctx->Stencil._TestTwoSide)
|
||||
ctx->_TriangleCaps |= DD_TRI_TWOSTENCIL;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
|
@ -1154,6 +1189,9 @@ _mesa_update_state_locked( GLcontext *ctx )
|
|||
if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT))
|
||||
_mesa_update_draw_buffer_bounds( ctx );
|
||||
|
||||
if (new_state & _NEW_POLYGON)
|
||||
update_polygon( ctx );
|
||||
|
||||
if (new_state & _NEW_LIGHT)
|
||||
_mesa_update_lighting( ctx );
|
||||
|
||||
|
@ -1163,6 +1201,9 @@ _mesa_update_state_locked( GLcontext *ctx )
|
|||
if (new_state & _IMAGE_NEW_TRANSFER_STATE)
|
||||
_mesa_update_pixel( ctx, new_state );
|
||||
|
||||
if (new_state & _DD_NEW_SEPARATE_SPECULAR)
|
||||
update_separate_specular( ctx );
|
||||
|
||||
if (new_state & (_NEW_ARRAY | _NEW_PROGRAM))
|
||||
update_arrays( ctx );
|
||||
|
||||
|
@ -1172,9 +1213,11 @@ _mesa_update_state_locked( GLcontext *ctx )
|
|||
if (new_state & _NEW_COLOR)
|
||||
update_color( ctx );
|
||||
|
||||
#if 0
|
||||
if (new_state & (_NEW_POINT | _NEW_LINE | _NEW_POLYGON | _NEW_LIGHT
|
||||
| _NEW_STENCIL | _DD_NEW_SEPARATE_SPECULAR))
|
||||
update_tricaps( ctx, new_state );
|
||||
#endif
|
||||
|
||||
if (ctx->FragmentProgram._MaintainTexEnvProgram) {
|
||||
if (new_state & (_NEW_TEXTURE | _DD_NEW_SEPARATE_SPECULAR | _NEW_FOG))
|
||||
|
|
297
reactos/dll/3rdparty/mesa32/src/main/stencil.c
vendored
297
reactos/dll/3rdparty/mesa32/src/main/stencil.c
vendored
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.5.2
|
||||
* Version: 7.1
|
||||
*
|
||||
* Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
@ -53,6 +53,48 @@
|
|||
#include "mtypes.h"
|
||||
|
||||
|
||||
static GLboolean
|
||||
validate_stencil_op(GLcontext *ctx, GLenum op)
|
||||
{
|
||||
switch (op) {
|
||||
case GL_KEEP:
|
||||
case GL_ZERO:
|
||||
case GL_REPLACE:
|
||||
case GL_INCR:
|
||||
case GL_DECR:
|
||||
case GL_INVERT:
|
||||
return GL_TRUE;
|
||||
case GL_INCR_WRAP_EXT:
|
||||
case GL_DECR_WRAP_EXT:
|
||||
if (ctx->Extensions.EXT_stencil_wrap) {
|
||||
return GL_TRUE;
|
||||
}
|
||||
/* FALL-THROUGH */
|
||||
default:
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static GLboolean
|
||||
validate_stencil_func(GLcontext *ctx, GLenum func)
|
||||
{
|
||||
switch (func) {
|
||||
case GL_NEVER:
|
||||
case GL_LESS:
|
||||
case GL_LEQUAL:
|
||||
case GL_GREATER:
|
||||
case GL_GEQUAL:
|
||||
case GL_EQUAL:
|
||||
case GL_NOTEQUAL:
|
||||
case GL_ALWAYS:
|
||||
return GL_TRUE;
|
||||
default:
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the clear value for the stencil buffer.
|
||||
*
|
||||
|
@ -82,6 +124,62 @@ _mesa_ClearStencil( GLint s )
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the function and reference value for stencil testing.
|
||||
*
|
||||
* \param frontfunc front test function.
|
||||
* \param backfunc back test function.
|
||||
* \param ref front and back reference value.
|
||||
* \param mask front and back bitmask.
|
||||
*
|
||||
* \sa glStencilFunc().
|
||||
*
|
||||
* Verifies the parameters and updates the respective values in
|
||||
* __GLcontextRec::Stencil. On change flushes the vertices and notifies the
|
||||
* driver via the dd_function_table::StencilFunc callback.
|
||||
*/
|
||||
void GLAPIENTRY
|
||||
_mesa_StencilFuncSeparateATI( GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask )
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
const GLint stencilMax = (1 << ctx->DrawBuffer->Visual.stencilBits) - 1;
|
||||
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
||||
|
||||
if (!validate_stencil_func(ctx, frontfunc)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM,
|
||||
"glStencilFuncSeparateATI(frontfunc)");
|
||||
return;
|
||||
}
|
||||
if (!validate_stencil_func(ctx, backfunc)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM,
|
||||
"glStencilFuncSeparateATI(backfunc)");
|
||||
return;
|
||||
}
|
||||
|
||||
ref = CLAMP( ref, 0, stencilMax );
|
||||
|
||||
/* set both front and back state */
|
||||
if (ctx->Stencil.Function[0] == frontfunc &&
|
||||
ctx->Stencil.Function[1] == backfunc &&
|
||||
ctx->Stencil.ValueMask[0] == mask &&
|
||||
ctx->Stencil.ValueMask[1] == mask &&
|
||||
ctx->Stencil.Ref[0] == ref &&
|
||||
ctx->Stencil.Ref[1] == ref)
|
||||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_STENCIL);
|
||||
ctx->Stencil.Function[0] = frontfunc;
|
||||
ctx->Stencil.Function[1] = backfunc;
|
||||
ctx->Stencil.Ref[0] = ctx->Stencil.Ref[1] = ref;
|
||||
ctx->Stencil.ValueMask[0] = ctx->Stencil.ValueMask[1] = mask;
|
||||
if (ctx->Driver.StencilFuncSeparate) {
|
||||
ctx->Driver.StencilFuncSeparate(ctx, GL_FRONT,
|
||||
frontfunc, ref, mask);
|
||||
ctx->Driver.StencilFuncSeparate(ctx, GL_BACK,
|
||||
backfunc, ref, mask);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the function and reference value for stencil testing.
|
||||
*
|
||||
|
@ -102,19 +200,9 @@ _mesa_StencilFunc( GLenum func, GLint ref, GLuint mask )
|
|||
const GLint stencilMax = (1 << ctx->DrawBuffer->Visual.stencilBits) - 1;
|
||||
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
||||
|
||||
switch (func) {
|
||||
case GL_NEVER:
|
||||
case GL_LESS:
|
||||
case GL_LEQUAL:
|
||||
case GL_GREATER:
|
||||
case GL_GEQUAL:
|
||||
case GL_EQUAL:
|
||||
case GL_NOTEQUAL:
|
||||
case GL_ALWAYS:
|
||||
break;
|
||||
default:
|
||||
_mesa_error( ctx, GL_INVALID_ENUM, "glStencilFunc (0x%04x)", func );
|
||||
return;
|
||||
if (!validate_stencil_func(ctx, func)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilFunc(func)");
|
||||
return;
|
||||
}
|
||||
|
||||
ref = CLAMP( ref, 0, stencilMax );
|
||||
|
@ -218,59 +306,17 @@ _mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
|
|||
GET_CURRENT_CONTEXT(ctx);
|
||||
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
||||
|
||||
switch (fail) {
|
||||
case GL_KEEP:
|
||||
case GL_ZERO:
|
||||
case GL_REPLACE:
|
||||
case GL_INCR:
|
||||
case GL_DECR:
|
||||
case GL_INVERT:
|
||||
break;
|
||||
case GL_INCR_WRAP_EXT:
|
||||
case GL_DECR_WRAP_EXT:
|
||||
if (ctx->Extensions.EXT_stencil_wrap) {
|
||||
break;
|
||||
}
|
||||
/* FALL-THROUGH */
|
||||
default:
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp");
|
||||
return;
|
||||
if (!validate_stencil_op(ctx, fail)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(sfail)");
|
||||
return;
|
||||
}
|
||||
switch (zfail) {
|
||||
case GL_KEEP:
|
||||
case GL_ZERO:
|
||||
case GL_REPLACE:
|
||||
case GL_INCR:
|
||||
case GL_DECR:
|
||||
case GL_INVERT:
|
||||
break;
|
||||
case GL_INCR_WRAP_EXT:
|
||||
case GL_DECR_WRAP_EXT:
|
||||
if (ctx->Extensions.EXT_stencil_wrap) {
|
||||
break;
|
||||
}
|
||||
/* FALL-THROUGH */
|
||||
default:
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp");
|
||||
return;
|
||||
if (!validate_stencil_op(ctx, zfail)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zfail)");
|
||||
return;
|
||||
}
|
||||
switch (zpass) {
|
||||
case GL_KEEP:
|
||||
case GL_ZERO:
|
||||
case GL_REPLACE:
|
||||
case GL_INCR:
|
||||
case GL_DECR:
|
||||
case GL_INVERT:
|
||||
break;
|
||||
case GL_INCR_WRAP_EXT:
|
||||
case GL_DECR_WRAP_EXT:
|
||||
if (ctx->Extensions.EXT_stencil_wrap) {
|
||||
break;
|
||||
}
|
||||
/* FALL-THROUGH */
|
||||
default:
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp");
|
||||
return;
|
||||
if (!validate_stencil_op(ctx, zpass)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zpass)");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ctx->Extensions.ATI_separate_stencil) {
|
||||
|
@ -343,85 +389,55 @@ _mesa_ActiveStencilFaceEXT(GLenum face)
|
|||
* instead.
|
||||
*/
|
||||
void GLAPIENTRY
|
||||
_mesa_StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
|
||||
_mesa_StencilOpSeparate(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass)
|
||||
{
|
||||
GLboolean set = GL_FALSE;
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
||||
|
||||
if (!validate_stencil_op(ctx, sfail)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(sfail)");
|
||||
return;
|
||||
}
|
||||
if (!validate_stencil_op(ctx, zfail)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zfail)");
|
||||
return;
|
||||
}
|
||||
if (!validate_stencil_op(ctx, zpass)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zpass)");
|
||||
return;
|
||||
}
|
||||
if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(face)");
|
||||
return;
|
||||
}
|
||||
|
||||
switch (fail) {
|
||||
case GL_KEEP:
|
||||
case GL_ZERO:
|
||||
case GL_REPLACE:
|
||||
case GL_INCR:
|
||||
case GL_DECR:
|
||||
case GL_INVERT:
|
||||
break;
|
||||
case GL_INCR_WRAP_EXT:
|
||||
case GL_DECR_WRAP_EXT:
|
||||
if (ctx->Extensions.EXT_stencil_wrap) {
|
||||
break;
|
||||
}
|
||||
/* FALL-THROUGH */
|
||||
default:
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(fail)");
|
||||
return;
|
||||
}
|
||||
switch (zfail) {
|
||||
case GL_KEEP:
|
||||
case GL_ZERO:
|
||||
case GL_REPLACE:
|
||||
case GL_INCR:
|
||||
case GL_DECR:
|
||||
case GL_INVERT:
|
||||
break;
|
||||
case GL_INCR_WRAP_EXT:
|
||||
case GL_DECR_WRAP_EXT:
|
||||
if (ctx->Extensions.EXT_stencil_wrap) {
|
||||
break;
|
||||
}
|
||||
/* FALL-THROUGH */
|
||||
default:
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zfail)");
|
||||
return;
|
||||
}
|
||||
switch (zpass) {
|
||||
case GL_KEEP:
|
||||
case GL_ZERO:
|
||||
case GL_REPLACE:
|
||||
case GL_INCR:
|
||||
case GL_DECR:
|
||||
case GL_INVERT:
|
||||
break;
|
||||
case GL_INCR_WRAP_EXT:
|
||||
case GL_DECR_WRAP_EXT:
|
||||
if (ctx->Extensions.EXT_stencil_wrap) {
|
||||
break;
|
||||
}
|
||||
/* FALL-THROUGH */
|
||||
default:
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zpass)");
|
||||
return;
|
||||
}
|
||||
|
||||
FLUSH_VERTICES(ctx, _NEW_STENCIL);
|
||||
|
||||
if (face != GL_BACK) {
|
||||
ctx->Stencil.FailFunc[0] = fail;
|
||||
ctx->Stencil.ZFailFunc[0] = zfail;
|
||||
ctx->Stencil.ZPassFunc[0] = zpass;
|
||||
/* set front */
|
||||
if (ctx->Stencil.ZFailFunc[0] != zfail ||
|
||||
ctx->Stencil.ZPassFunc[0] != zpass ||
|
||||
ctx->Stencil.FailFunc[0] != sfail){
|
||||
FLUSH_VERTICES(ctx, _NEW_STENCIL);
|
||||
ctx->Stencil.ZFailFunc[0] = zfail;
|
||||
ctx->Stencil.ZPassFunc[0] = zpass;
|
||||
ctx->Stencil.FailFunc[0] = sfail;
|
||||
set = GL_TRUE;
|
||||
}
|
||||
}
|
||||
if (face != GL_FRONT) {
|
||||
ctx->Stencil.FailFunc[1] = fail;
|
||||
ctx->Stencil.ZFailFunc[1] = zfail;
|
||||
ctx->Stencil.ZPassFunc[1] = zpass;
|
||||
/* set back */
|
||||
if (ctx->Stencil.ZFailFunc[1] != zfail ||
|
||||
ctx->Stencil.ZPassFunc[1] != zpass ||
|
||||
ctx->Stencil.FailFunc[1] != sfail) {
|
||||
FLUSH_VERTICES(ctx, _NEW_STENCIL);
|
||||
ctx->Stencil.ZFailFunc[1] = zfail;
|
||||
ctx->Stencil.ZPassFunc[1] = zpass;
|
||||
ctx->Stencil.FailFunc[1] = sfail;
|
||||
set = GL_TRUE;
|
||||
}
|
||||
}
|
||||
if (ctx->Driver.StencilOpSeparate) {
|
||||
ctx->Driver.StencilOpSeparate(ctx, face, fail, zfail, zpass);
|
||||
if (set && ctx->Driver.StencilOpSeparate) {
|
||||
ctx->Driver.StencilOpSeparate(ctx, face, sfail, zfail, zpass);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -438,20 +454,9 @@ _mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
|
|||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(face)");
|
||||
return;
|
||||
}
|
||||
|
||||
switch (func) {
|
||||
case GL_NEVER:
|
||||
case GL_LESS:
|
||||
case GL_LEQUAL:
|
||||
case GL_GREATER:
|
||||
case GL_GEQUAL:
|
||||
case GL_EQUAL:
|
||||
case GL_NOTEQUAL:
|
||||
case GL_ALWAYS:
|
||||
break;
|
||||
default:
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(func)");
|
||||
return;
|
||||
if (!validate_stencil_func(ctx, func)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(func)");
|
||||
return;
|
||||
}
|
||||
|
||||
ref = CLAMP(ref, 0, stencilMax);
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.5
|
||||
* Version: 7.1
|
||||
*
|
||||
* Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
@ -63,6 +63,9 @@ extern void GLAPIENTRY
|
|||
_mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
|
||||
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_StencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_StencilMaskSeparate(GLenum face, GLuint mask);
|
||||
|
||||
|
|
|
@ -35,10 +35,11 @@
|
|||
#include "texenvprogram.h"
|
||||
|
||||
/**
|
||||
* According to Glean's texCombine test, no more than 21 instructions
|
||||
* are needed. Allow a few extra just in case.
|
||||
* This MAX is probably a bit generous, but that's OK. There can be
|
||||
* up to four instructions per texture unit (TEX + 3 for combine),
|
||||
* then there's fog and specular add.
|
||||
*/
|
||||
#define MAX_INSTRUCTIONS 24
|
||||
#define MAX_INSTRUCTIONS ((MAX_TEXTURE_UNITS * 4) + 12)
|
||||
|
||||
#define DISASSEM (MESA_VERBOSE & VERBOSE_DISASSEM)
|
||||
|
||||
|
@ -460,8 +461,8 @@ static void emit_dst( struct prog_dst_register *dst,
|
|||
dst->File = ureg.file;
|
||||
dst->Index = ureg.idx;
|
||||
dst->WriteMask = mask;
|
||||
dst->CondMask = 0;
|
||||
dst->CondSwizzle = 0;
|
||||
dst->CondMask = COND_TR; /* always pass cond test */
|
||||
dst->CondSwizzle = SWIZZLE_NOOP;
|
||||
}
|
||||
|
||||
static struct prog_instruction *
|
||||
|
@ -476,7 +477,9 @@ emit_op(struct texenv_fragment_program *p,
|
|||
{
|
||||
GLuint nr = p->program->Base.NumInstructions++;
|
||||
struct prog_instruction *inst = &p->program->Base.Instructions[nr];
|
||||
|
||||
|
||||
assert(nr < MAX_INSTRUCTIONS);
|
||||
|
||||
_mesa_init_instructions(inst, 1);
|
||||
inst->Opcode = op;
|
||||
|
||||
|
|
219
reactos/dll/3rdparty/mesa32/src/main/texobj.c
vendored
219
reactos/dll/3rdparty/mesa32/src/main/texobj.c
vendored
|
@ -156,6 +156,11 @@ _mesa_delete_texture_object( GLcontext *ctx, struct gl_texture_object *texObj )
|
|||
|
||||
(void) ctx;
|
||||
|
||||
/* Set Target to an invalid value. With some assertions elsewhere
|
||||
* we can try to detect possible use of deleted textures.
|
||||
*/
|
||||
texObj->Target = 0x99;
|
||||
|
||||
_mesa_free_colortable_data(&texObj->Palette);
|
||||
|
||||
/* free the texture images */
|
||||
|
@ -188,6 +193,7 @@ void
|
|||
_mesa_copy_texture_object( struct gl_texture_object *dest,
|
||||
const struct gl_texture_object *src )
|
||||
{
|
||||
dest->Target = src->Target;
|
||||
dest->Name = src->Name;
|
||||
dest->Priority = src->Priority;
|
||||
dest->BorderColor[0] = src->BorderColor[0];
|
||||
|
@ -219,6 +225,92 @@ _mesa_copy_texture_object( struct gl_texture_object *dest,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if the given texture object is valid by examining its Target field.
|
||||
* For debugging only.
|
||||
*/
|
||||
static GLboolean
|
||||
valid_texture_object(const struct gl_texture_object *tex)
|
||||
{
|
||||
switch (tex->Target) {
|
||||
case 0:
|
||||
case GL_TEXTURE_1D:
|
||||
case GL_TEXTURE_2D:
|
||||
case GL_TEXTURE_3D:
|
||||
case GL_TEXTURE_CUBE_MAP_ARB:
|
||||
case GL_TEXTURE_RECTANGLE_NV:
|
||||
return GL_TRUE;
|
||||
case 0x99:
|
||||
_mesa_problem(NULL, "invalid reference to a deleted texture object");
|
||||
return GL_FALSE;
|
||||
default:
|
||||
_mesa_problem(NULL, "invalid texture object Target value");
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reference (or unreference) a texture object.
|
||||
* If '*ptr', decrement *ptr's refcount (and delete if it becomes zero).
|
||||
* If 'tex' is non-null, increment its refcount.
|
||||
*/
|
||||
void
|
||||
_mesa_reference_texobj(struct gl_texture_object **ptr,
|
||||
struct gl_texture_object *tex)
|
||||
{
|
||||
assert(ptr);
|
||||
if (*ptr == tex) {
|
||||
/* no change */
|
||||
return;
|
||||
}
|
||||
|
||||
if (*ptr) {
|
||||
/* Unreference the old texture */
|
||||
GLboolean deleteFlag = GL_FALSE;
|
||||
struct gl_texture_object *oldTex = *ptr;
|
||||
|
||||
assert(valid_texture_object(oldTex));
|
||||
|
||||
_glthread_LOCK_MUTEX(oldTex->Mutex);
|
||||
ASSERT(oldTex->RefCount > 0);
|
||||
oldTex->RefCount--;
|
||||
|
||||
deleteFlag = (oldTex->RefCount == 0);
|
||||
_glthread_UNLOCK_MUTEX(oldTex->Mutex);
|
||||
|
||||
if (deleteFlag) {
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
if (ctx)
|
||||
ctx->Driver.DeleteTexture(ctx, oldTex);
|
||||
else
|
||||
_mesa_problem(NULL, "Unable to delete texture, no context");
|
||||
}
|
||||
|
||||
*ptr = NULL;
|
||||
}
|
||||
assert(!*ptr);
|
||||
|
||||
if (tex) {
|
||||
/* reference new texture */
|
||||
assert(valid_texture_object(tex));
|
||||
_glthread_LOCK_MUTEX(tex->Mutex);
|
||||
if (tex->RefCount == 0) {
|
||||
/* this texture's being deleted (look just above) */
|
||||
/* Not sure this can every really happen. Warn if it does. */
|
||||
_mesa_problem(NULL, "referencing deleted texture object");
|
||||
*ptr = NULL;
|
||||
}
|
||||
else {
|
||||
tex->RefCount++;
|
||||
*ptr = tex;
|
||||
}
|
||||
_glthread_UNLOCK_MUTEX(tex->Mutex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Report why a texture object is incomplete.
|
||||
*
|
||||
|
@ -620,8 +712,7 @@ unbind_texobj_from_fbo(GLcontext *ctx, struct gl_texture_object *texObj)
|
|||
|
||||
/**
|
||||
* Check if the given texture object is bound to any texture image units and
|
||||
* unbind it if so.
|
||||
* XXX all RefCount accesses should be protected by a mutex.
|
||||
* unbind it if so (revert to default textures).
|
||||
*/
|
||||
static void
|
||||
unbind_texobj_from_texunits(GLcontext *ctx, struct gl_texture_object *texObj)
|
||||
|
@ -630,34 +721,20 @@ unbind_texobj_from_texunits(GLcontext *ctx, struct gl_texture_object *texObj)
|
|||
|
||||
for (u = 0; u < MAX_TEXTURE_IMAGE_UNITS; u++) {
|
||||
struct gl_texture_unit *unit = &ctx->Texture.Unit[u];
|
||||
struct gl_texture_object **curr = NULL;
|
||||
|
||||
if (texObj == unit->Current1D) {
|
||||
curr = &unit->Current1D;
|
||||
unit->Current1D = ctx->Shared->Default1D;
|
||||
_mesa_reference_texobj(&unit->Current1D, ctx->Shared->Default1D);
|
||||
}
|
||||
else if (texObj == unit->Current2D) {
|
||||
curr = &unit->Current2D;
|
||||
unit->Current2D = ctx->Shared->Default2D;
|
||||
_mesa_reference_texobj(&unit->Current2D, ctx->Shared->Default2D);
|
||||
}
|
||||
else if (texObj == unit->Current3D) {
|
||||
curr = &unit->Current3D;
|
||||
unit->Current3D = ctx->Shared->Default3D;
|
||||
_mesa_reference_texobj(&unit->Current3D, ctx->Shared->Default3D);
|
||||
}
|
||||
else if (texObj == unit->CurrentCubeMap) {
|
||||
curr = &unit->CurrentCubeMap;
|
||||
unit->CurrentCubeMap = ctx->Shared->DefaultCubeMap;
|
||||
_mesa_reference_texobj(&unit->CurrentCubeMap, ctx->Shared->DefaultCubeMap);
|
||||
}
|
||||
else if (texObj == unit->CurrentRect) {
|
||||
curr = &unit->CurrentRect;
|
||||
unit->CurrentRect = ctx->Shared->DefaultRect;
|
||||
}
|
||||
|
||||
if (curr) {
|
||||
(*curr)->RefCount++;
|
||||
texObj->RefCount--;
|
||||
if (texObj == unit->_Current)
|
||||
unit->_Current = *curr;
|
||||
_mesa_reference_texobj(&unit->CurrentRect, ctx->Shared->DefaultRect);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -693,8 +770,6 @@ _mesa_DeleteTextures( GLsizei n, const GLuint *textures)
|
|||
= _mesa_lookup_texture(ctx, textures[i]);
|
||||
|
||||
if (delObj) {
|
||||
GLboolean deleted;
|
||||
|
||||
_mesa_lock_texture(ctx, delObj);
|
||||
|
||||
/* Check if texture is bound to any framebuffer objects.
|
||||
|
@ -704,10 +779,12 @@ _mesa_DeleteTextures( GLsizei n, const GLuint *textures)
|
|||
unbind_texobj_from_fbo(ctx, delObj);
|
||||
|
||||
/* Check if this texture is currently bound to any texture units.
|
||||
* If so, unbind it and decrement the reference count.
|
||||
* If so, unbind it.
|
||||
*/
|
||||
unbind_texobj_from_texunits(ctx, delObj);
|
||||
|
||||
_mesa_unlock_texture(ctx, delObj);
|
||||
|
||||
ctx->NewState |= _NEW_TEXTURE;
|
||||
|
||||
/* The texture _name_ is now free for re-use.
|
||||
|
@ -717,23 +794,10 @@ _mesa_DeleteTextures( GLsizei n, const GLuint *textures)
|
|||
_mesa_HashRemove(ctx->Shared->TexObjects, delObj->Name);
|
||||
_glthread_UNLOCK_MUTEX(ctx->Shared->Mutex);
|
||||
|
||||
/* The actual texture object will not be freed until it's no
|
||||
* longer bound in any context.
|
||||
* XXX all RefCount accesses should be protected by a mutex.
|
||||
/* Unreference the texobj. If refcount hits zero, the texture
|
||||
* will be deleted.
|
||||
*/
|
||||
delObj->RefCount--;
|
||||
deleted = (delObj->RefCount == 0);
|
||||
_mesa_unlock_texture(ctx, delObj);
|
||||
|
||||
/* We know that refcount went to zero above, so this is
|
||||
* the only pointer left to delObj, so we don't have to
|
||||
* worry about locking any more:
|
||||
*/
|
||||
if (deleted) {
|
||||
ASSERT(delObj->Name != 0); /* Never delete default tex objs */
|
||||
ASSERT(ctx->Driver.DeleteTexture);
|
||||
(*ctx->Driver.DeleteTexture)(ctx, delObj);
|
||||
}
|
||||
_mesa_reference_texobj(&delObj, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -761,7 +825,6 @@ _mesa_BindTexture( GLenum target, GLuint texName )
|
|||
GET_CURRENT_CONTEXT(ctx);
|
||||
const GLuint unit = ctx->Texture.CurrentUnit;
|
||||
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
|
||||
struct gl_texture_object *oldTexObj;
|
||||
struct gl_texture_object *newTexObj = NULL;
|
||||
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
||||
|
||||
|
@ -769,48 +832,6 @@ _mesa_BindTexture( GLenum target, GLuint texName )
|
|||
_mesa_debug(ctx, "glBindTexture %s %d\n",
|
||||
_mesa_lookup_enum_by_nr(target), (GLint) texName);
|
||||
|
||||
/*
|
||||
* Get pointer to currently bound texture object (oldTexObj)
|
||||
*/
|
||||
switch (target) {
|
||||
case GL_TEXTURE_1D:
|
||||
oldTexObj = texUnit->Current1D;
|
||||
break;
|
||||
case GL_TEXTURE_2D:
|
||||
oldTexObj = texUnit->Current2D;
|
||||
break;
|
||||
case GL_TEXTURE_3D:
|
||||
oldTexObj = texUnit->Current3D;
|
||||
break;
|
||||
case GL_TEXTURE_CUBE_MAP_ARB:
|
||||
if (!ctx->Extensions.ARB_texture_cube_map) {
|
||||
_mesa_error( ctx, GL_INVALID_ENUM, "glBindTexture(target)" );
|
||||
return;
|
||||
}
|
||||
oldTexObj = texUnit->CurrentCubeMap;
|
||||
break;
|
||||
case GL_TEXTURE_RECTANGLE_NV:
|
||||
if (!ctx->Extensions.NV_texture_rectangle) {
|
||||
_mesa_error( ctx, GL_INVALID_ENUM, "glBindTexture(target)" );
|
||||
return;
|
||||
}
|
||||
oldTexObj = texUnit->CurrentRect;
|
||||
break;
|
||||
default:
|
||||
_mesa_error( ctx, GL_INVALID_ENUM, "glBindTexture(target)" );
|
||||
return;
|
||||
}
|
||||
|
||||
if (oldTexObj->Name == texName) {
|
||||
/* XXX this might be wrong. If the texobj is in use by another
|
||||
* context and a texobj parameter was changed, this might be our
|
||||
* only chance to update this context's hardware state.
|
||||
* Note that some applications re-bind the same texture a lot so we
|
||||
* want to handle that case quickly.
|
||||
*/
|
||||
return; /* rebinding the same texture- no change */
|
||||
}
|
||||
|
||||
/*
|
||||
* Get pointer to new texture object (newTexObj)
|
||||
*/
|
||||
|
@ -879,28 +900,30 @@ _mesa_BindTexture( GLenum target, GLuint texName )
|
|||
newTexObj->Target = target;
|
||||
}
|
||||
|
||||
/* XXX all RefCount accesses should be protected by a mutex. */
|
||||
newTexObj->RefCount++;
|
||||
assert(valid_texture_object(newTexObj));
|
||||
|
||||
/* do the actual binding, but first flush outstanding vertices:
|
||||
*/
|
||||
/* flush before changing binding */
|
||||
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
|
||||
|
||||
/* Do the actual binding. The refcount on the previously bound
|
||||
* texture object will be decremented. It'll be deleted if the
|
||||
* count hits zero.
|
||||
*/
|
||||
switch (target) {
|
||||
case GL_TEXTURE_1D:
|
||||
texUnit->Current1D = newTexObj;
|
||||
_mesa_reference_texobj(&texUnit->Current1D, newTexObj);
|
||||
break;
|
||||
case GL_TEXTURE_2D:
|
||||
texUnit->Current2D = newTexObj;
|
||||
_mesa_reference_texobj(&texUnit->Current2D, newTexObj);
|
||||
break;
|
||||
case GL_TEXTURE_3D:
|
||||
texUnit->Current3D = newTexObj;
|
||||
_mesa_reference_texobj(&texUnit->Current3D, newTexObj);
|
||||
break;
|
||||
case GL_TEXTURE_CUBE_MAP_ARB:
|
||||
texUnit->CurrentCubeMap = newTexObj;
|
||||
_mesa_reference_texobj(&texUnit->CurrentCubeMap, newTexObj);
|
||||
break;
|
||||
case GL_TEXTURE_RECTANGLE_NV:
|
||||
texUnit->CurrentRect = newTexObj;
|
||||
_mesa_reference_texobj(&texUnit->CurrentRect, newTexObj);
|
||||
break;
|
||||
default:
|
||||
_mesa_problem(ctx, "bad target in BindTexture");
|
||||
|
@ -910,18 +933,6 @@ _mesa_BindTexture( GLenum target, GLuint texName )
|
|||
/* Pass BindTexture call to device driver */
|
||||
if (ctx->Driver.BindTexture)
|
||||
(*ctx->Driver.BindTexture)( ctx, target, newTexObj );
|
||||
|
||||
/* Decrement the reference count on the old texture and check if it's
|
||||
* time to delete it.
|
||||
*/
|
||||
/* XXX all RefCount accesses should be protected by a mutex. */
|
||||
oldTexObj->RefCount--;
|
||||
ASSERT(oldTexObj->RefCount >= 0);
|
||||
if (oldTexObj->RefCount == 0) {
|
||||
ASSERT(oldTexObj->Name != 0);
|
||||
ASSERT(ctx->Driver.DeleteTexture);
|
||||
(*ctx->Driver.DeleteTexture)( ctx, oldTexObj );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -57,6 +57,10 @@ extern void
|
|||
_mesa_copy_texture_object( struct gl_texture_object *dest,
|
||||
const struct gl_texture_object *src );
|
||||
|
||||
extern void
|
||||
_mesa_reference_texobj(struct gl_texture_object **ptr,
|
||||
struct gl_texture_object *tex);
|
||||
|
||||
extern void
|
||||
_mesa_test_texobj_completeness( const GLcontext *ctx,
|
||||
struct gl_texture_object *obj );
|
||||
|
|
93
reactos/dll/3rdparty/mesa32/src/main/texstate.c
vendored
93
reactos/dll/3rdparty/mesa32/src/main/texstate.c
vendored
|
@ -63,31 +63,6 @@ static const struct gl_tex_env_combine_state default_combine_state = {
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
* Copy a texture binding. Helper used by _mesa_copy_texture_state().
|
||||
*/
|
||||
static void
|
||||
copy_texture_binding(const GLcontext *ctx,
|
||||
struct gl_texture_object **dst,
|
||||
struct gl_texture_object *src)
|
||||
{
|
||||
/* only copy if names differ (per OpenGL SI) */
|
||||
if ((*dst)->Name != src->Name) {
|
||||
/* unbind/delete dest binding which we're changing */
|
||||
(*dst)->RefCount--;
|
||||
if ((*dst)->RefCount == 0) {
|
||||
/* time to delete this texture object */
|
||||
ASSERT((*dst)->Name != 0);
|
||||
ASSERT(ctx->Driver.DeleteTexture);
|
||||
/* XXX cast-away const, unfortunately */
|
||||
(*ctx->Driver.DeleteTexture)((GLcontext *) ctx, *dst);
|
||||
}
|
||||
/* make new binding, incrementing ref count */
|
||||
*dst = src;
|
||||
src->RefCount++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Used by glXCopyContext to copy texture state from one context to another.
|
||||
|
@ -144,16 +119,16 @@ _mesa_copy_texture_state( const GLcontext *src, GLcontext *dst )
|
|||
/* copy texture object bindings, not contents of texture objects */
|
||||
_mesa_lock_context_textures(dst);
|
||||
|
||||
copy_texture_binding(src, &dst->Texture.Unit[i].Current1D,
|
||||
src->Texture.Unit[i].Current1D);
|
||||
copy_texture_binding(src, &dst->Texture.Unit[i].Current2D,
|
||||
src->Texture.Unit[i].Current2D);
|
||||
copy_texture_binding(src, &dst->Texture.Unit[i].Current3D,
|
||||
src->Texture.Unit[i].Current3D);
|
||||
copy_texture_binding(src, &dst->Texture.Unit[i].CurrentCubeMap,
|
||||
src->Texture.Unit[i].CurrentCubeMap);
|
||||
copy_texture_binding(src, &dst->Texture.Unit[i].CurrentRect,
|
||||
src->Texture.Unit[i].CurrentRect);
|
||||
_mesa_reference_texobj(&dst->Texture.Unit[i].Current1D,
|
||||
src->Texture.Unit[i].Current1D);
|
||||
_mesa_reference_texobj(&dst->Texture.Unit[i].Current2D,
|
||||
src->Texture.Unit[i].Current2D);
|
||||
_mesa_reference_texobj(&dst->Texture.Unit[i].Current3D,
|
||||
src->Texture.Unit[i].Current3D);
|
||||
_mesa_reference_texobj(&dst->Texture.Unit[i].CurrentCubeMap,
|
||||
src->Texture.Unit[i].CurrentCubeMap);
|
||||
_mesa_reference_texobj(&dst->Texture.Unit[i].CurrentRect,
|
||||
src->Texture.Unit[i].CurrentRect);
|
||||
|
||||
_mesa_unlock_context_textures(dst);
|
||||
}
|
||||
|
@ -3032,6 +3007,8 @@ alloc_proxy_textures( GLcontext *ctx )
|
|||
if (!ctx->Texture.ProxyRect)
|
||||
goto cleanup;
|
||||
|
||||
assert(ctx->Texture.Proxy1D->RefCount == 1);
|
||||
|
||||
return GL_TRUE;
|
||||
|
||||
cleanup:
|
||||
|
@ -3087,11 +3064,12 @@ init_texture_unit( GLcontext *ctx, GLuint unit )
|
|||
ASSIGN_4V( texUnit->EyePlaneR, 0.0, 0.0, 0.0, 0.0 );
|
||||
ASSIGN_4V( texUnit->EyePlaneQ, 0.0, 0.0, 0.0, 0.0 );
|
||||
|
||||
texUnit->Current1D = ctx->Shared->Default1D;
|
||||
texUnit->Current2D = ctx->Shared->Default2D;
|
||||
texUnit->Current3D = ctx->Shared->Default3D;
|
||||
texUnit->CurrentCubeMap = ctx->Shared->DefaultCubeMap;
|
||||
texUnit->CurrentRect = ctx->Shared->DefaultRect;
|
||||
/* initialize current texture object ptrs to the shared default objects */
|
||||
_mesa_reference_texobj(&texUnit->Current1D, ctx->Shared->Default1D);
|
||||
_mesa_reference_texobj(&texUnit->Current2D, ctx->Shared->Default2D);
|
||||
_mesa_reference_texobj(&texUnit->Current3D, ctx->Shared->Default3D);
|
||||
_mesa_reference_texobj(&texUnit->CurrentCubeMap, ctx->Shared->DefaultCubeMap);
|
||||
_mesa_reference_texobj(&texUnit->CurrentRect, ctx->Shared->DefaultRect);
|
||||
}
|
||||
|
||||
|
||||
|
@ -3106,21 +3084,20 @@ _mesa_init_texture(GLcontext *ctx)
|
|||
assert(MAX_TEXTURE_LEVELS >= MAX_3D_TEXTURE_LEVELS);
|
||||
assert(MAX_TEXTURE_LEVELS >= MAX_CUBE_TEXTURE_LEVELS);
|
||||
|
||||
/* Effectively bind the default textures to all texture units */
|
||||
ctx->Shared->Default1D->RefCount += MAX_TEXTURE_UNITS;
|
||||
ctx->Shared->Default2D->RefCount += MAX_TEXTURE_UNITS;
|
||||
ctx->Shared->Default3D->RefCount += MAX_TEXTURE_UNITS;
|
||||
ctx->Shared->DefaultCubeMap->RefCount += MAX_TEXTURE_UNITS;
|
||||
ctx->Shared->DefaultRect->RefCount += MAX_TEXTURE_UNITS;
|
||||
|
||||
/* Texture group */
|
||||
ctx->Texture.CurrentUnit = 0; /* multitexture */
|
||||
ctx->Texture._EnabledUnits = 0;
|
||||
for (i=0; i<MAX_TEXTURE_UNITS; i++)
|
||||
init_texture_unit( ctx, i );
|
||||
ctx->Texture.SharedPalette = GL_FALSE;
|
||||
_mesa_init_colortable(&ctx->Texture.Palette);
|
||||
|
||||
for (i = 0; i < MAX_TEXTURE_UNITS; i++)
|
||||
init_texture_unit( ctx, i );
|
||||
|
||||
/* After we're done initializing the context's texture state the default
|
||||
* texture objects' refcounts should be at least MAX_TEXTURE_UNITS + 1.
|
||||
*/
|
||||
assert(ctx->Shared->Default1D->RefCount >= MAX_TEXTURE_UNITS + 1);
|
||||
|
||||
_mesa_TexEnvProgramCacheInit( ctx );
|
||||
|
||||
/* Allocate proxy textures */
|
||||
|
@ -3132,12 +3109,22 @@ _mesa_init_texture(GLcontext *ctx)
|
|||
|
||||
|
||||
/**
|
||||
* Free dynamically-allocted texture data attached to the given context.
|
||||
* Free dynamically-allocated texture data attached to the given context.
|
||||
*/
|
||||
void
|
||||
_mesa_free_texture_data(GLcontext *ctx)
|
||||
{
|
||||
GLuint i;
|
||||
GLuint u;
|
||||
|
||||
/* unreference current textures */
|
||||
for (u = 0; u < MAX_TEXTURE_IMAGE_UNITS; u++) {
|
||||
struct gl_texture_unit *unit = ctx->Texture.Unit + u;
|
||||
_mesa_reference_texobj(&unit->Current1D, NULL);
|
||||
_mesa_reference_texobj(&unit->Current2D, NULL);
|
||||
_mesa_reference_texobj(&unit->Current3D, NULL);
|
||||
_mesa_reference_texobj(&unit->CurrentCubeMap, NULL);
|
||||
_mesa_reference_texobj(&unit->CurrentRect, NULL);
|
||||
}
|
||||
|
||||
/* Free proxy texture objects */
|
||||
(ctx->Driver.DeleteTexture)(ctx, ctx->Texture.Proxy1D );
|
||||
|
@ -3146,8 +3133,8 @@ _mesa_free_texture_data(GLcontext *ctx)
|
|||
(ctx->Driver.DeleteTexture)(ctx, ctx->Texture.ProxyCubeMap );
|
||||
(ctx->Driver.DeleteTexture)(ctx, ctx->Texture.ProxyRect );
|
||||
|
||||
for (i = 0; i < MAX_TEXTURE_IMAGE_UNITS; i++)
|
||||
_mesa_free_colortable_data( &ctx->Texture.Unit[i].ColorTable );
|
||||
for (u = 0; u < MAX_TEXTURE_IMAGE_UNITS; u++)
|
||||
_mesa_free_colortable_data( &ctx->Texture.Unit[u].ColorTable );
|
||||
|
||||
_mesa_TexEnvProgramCacheDestroy( ctx );
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 7.0.1
|
||||
* Version: 7.0.2
|
||||
*
|
||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
*
|
||||
|
@ -30,8 +30,8 @@
|
|||
/* Mesa version */
|
||||
#define MESA_MAJOR 7
|
||||
#define MESA_MINOR 0
|
||||
#define MESA_PATCH 1
|
||||
#define MESA_VERSION_STRING "7.0.1"
|
||||
#define MESA_PATCH 2
|
||||
#define MESA_VERSION_STRING "7.0.2"
|
||||
|
||||
/* To make version comparison easy */
|
||||
#define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
|
||||
|
|
|
@ -624,6 +624,41 @@ program_error(GLcontext *ctx, GLint position, const char *descrip)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* As above, but with an extra string parameter for more info.
|
||||
*/
|
||||
static void
|
||||
program_error2(GLcontext *ctx, GLint position, const char *descrip,
|
||||
const char *var)
|
||||
{
|
||||
if (descrip) {
|
||||
const char *prefix = "glProgramString(", *suffix = ")";
|
||||
char *str = (char *) _mesa_malloc(_mesa_strlen(descrip) +
|
||||
_mesa_strlen(": ") +
|
||||
_mesa_strlen(var) +
|
||||
_mesa_strlen(prefix) +
|
||||
_mesa_strlen(suffix) + 1);
|
||||
if (str) {
|
||||
_mesa_sprintf(str, "%s%s: %s%s", prefix, descrip, var, suffix);
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION, str);
|
||||
_mesa_free(str);
|
||||
}
|
||||
}
|
||||
{
|
||||
char *str = (char *) _mesa_malloc(_mesa_strlen(descrip) +
|
||||
_mesa_strlen(": ") +
|
||||
_mesa_strlen(var) + 1);
|
||||
if (str) {
|
||||
_mesa_sprintf(str, "%s: %s", descrip, var);
|
||||
}
|
||||
_mesa_set_program_error(ctx, position, str);
|
||||
if (str) {
|
||||
_mesa_free(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* constructs an integer from 4 GLubytes in LE format
|
||||
|
@ -1217,10 +1252,10 @@ parse_state_single_item (GLcontext * ctx, const GLubyte ** inst,
|
|||
state_tokens[1] = coord;
|
||||
|
||||
/* EYE or OBJECT */
|
||||
type = *(*inst++);
|
||||
type = *(*inst)++;
|
||||
|
||||
/* 0 - s, 1 - t, 2 - r, 3 - q */
|
||||
coord = *(*inst++);
|
||||
coord = *(*inst)++;
|
||||
|
||||
if (type == TEX_GEN_EYE) {
|
||||
switch (coord) {
|
||||
|
@ -1236,6 +1271,9 @@ parse_state_single_item (GLcontext * ctx, const GLubyte ** inst,
|
|||
case COMPONENT_W:
|
||||
state_tokens[2] = STATE_TEXGEN_EYE_Q;
|
||||
break;
|
||||
default:
|
||||
_mesa_problem(ctx, "bad texgen component in "
|
||||
"parse_state_single_item()");
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -1252,6 +1290,9 @@ parse_state_single_item (GLcontext * ctx, const GLubyte ** inst,
|
|||
case COMPONENT_W:
|
||||
state_tokens[2] = STATE_TEXGEN_OBJECT_Q;
|
||||
break;
|
||||
default:
|
||||
_mesa_problem(ctx, "bad texgen component in "
|
||||
"parse_state_single_item()");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1274,7 +1315,7 @@ parse_state_single_item (GLcontext * ctx, const GLubyte ** inst,
|
|||
break;
|
||||
|
||||
case STATE_POINT:
|
||||
switch (*(*inst++)) {
|
||||
switch (*(*inst)++) {
|
||||
case POINT_SIZE:
|
||||
state_tokens[0] = STATE_POINT_SIZE;
|
||||
break;
|
||||
|
@ -1678,18 +1719,14 @@ parse_attrib (GLcontext * ctx, const GLubyte ** inst, struct var_cache **vc_head
|
|||
struct arb_program *Program)
|
||||
{
|
||||
GLuint found;
|
||||
char *error_msg;
|
||||
struct var_cache *attrib_var;
|
||||
|
||||
attrib_var = parse_string (inst, vc_head, Program, &found);
|
||||
Program->Position = parse_position (inst);
|
||||
if (found) {
|
||||
error_msg = (char *)
|
||||
_mesa_malloc (_mesa_strlen ((char *) attrib_var->name) + 40);
|
||||
_mesa_sprintf (error_msg, "Duplicate Varible Declaration: %s",
|
||||
attrib_var->name);
|
||||
program_error(ctx, Program->Position, error_msg);
|
||||
_mesa_free (error_msg);
|
||||
program_error2(ctx, Program->Position,
|
||||
"Duplicate variable declaration",
|
||||
(char *) attrib_var->name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -1867,12 +1904,9 @@ parse_param (GLcontext * ctx, const GLubyte ** inst, struct var_cache **vc_head,
|
|||
Program->Position = parse_position (inst);
|
||||
|
||||
if (found) {
|
||||
char *error_msg = (char *)
|
||||
_mesa_malloc (_mesa_strlen ((char *) param_var->name) + 40);
|
||||
_mesa_sprintf (error_msg, "Duplicate Varible Declaration: %s",
|
||||
param_var->name);
|
||||
program_error (ctx, Program->Position, error_msg);
|
||||
_mesa_free (error_msg);
|
||||
program_error2(ctx, Program->Position,
|
||||
"Duplicate variable declaration",
|
||||
(char *) param_var->name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -1967,12 +2001,9 @@ parse_temp (GLcontext * ctx, const GLubyte ** inst, struct var_cache **vc_head,
|
|||
temp_var = parse_string (inst, vc_head, Program, &found);
|
||||
Program->Position = parse_position (inst);
|
||||
if (found) {
|
||||
char *error_msg = (char *)
|
||||
_mesa_malloc (_mesa_strlen ((char *) temp_var->name) + 40);
|
||||
_mesa_sprintf (error_msg, "Duplicate Varible Declaration: %s",
|
||||
temp_var->name);
|
||||
program_error(ctx, Program->Position, error_msg);
|
||||
_mesa_free (error_msg);
|
||||
program_error2(ctx, Program->Position,
|
||||
"Duplicate variable declaration",
|
||||
(char *) temp_var->name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -2013,12 +2044,9 @@ parse_output (GLcontext * ctx, const GLubyte ** inst, struct var_cache **vc_head
|
|||
output_var = parse_string (inst, vc_head, Program, &found);
|
||||
Program->Position = parse_position (inst);
|
||||
if (found) {
|
||||
char *error_msg = (char *)
|
||||
_mesa_malloc (_mesa_strlen ((char *) output_var->name) + 40);
|
||||
_mesa_sprintf (error_msg, "Duplicate Varible Declaration: %s",
|
||||
output_var->name);
|
||||
program_error (ctx, Program->Position, error_msg);
|
||||
_mesa_free (error_msg);
|
||||
program_error2(ctx, Program->Position,
|
||||
"Duplicate variable declaration",
|
||||
(char *) output_var->name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -2044,12 +2072,9 @@ parse_alias (GLcontext * ctx, const GLubyte ** inst, struct var_cache **vc_head,
|
|||
Program->Position = parse_position (inst);
|
||||
|
||||
if (found) {
|
||||
char *error_msg = (char *)
|
||||
_mesa_malloc (_mesa_strlen ((char *) temp_var->name) + 40);
|
||||
_mesa_sprintf (error_msg, "Duplicate Varible Declaration: %s",
|
||||
temp_var->name);
|
||||
program_error(ctx, Program->Position, error_msg);
|
||||
_mesa_free (error_msg);
|
||||
program_error2(ctx, Program->Position,
|
||||
"Duplicate variable declaration",
|
||||
(char *) temp_var->name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -2059,12 +2084,9 @@ parse_alias (GLcontext * ctx, const GLubyte ** inst, struct var_cache **vc_head,
|
|||
|
||||
if (!found)
|
||||
{
|
||||
char *error_msg = (char *)
|
||||
_mesa_malloc (_mesa_strlen ((char *) temp_var->name) + 40);
|
||||
_mesa_sprintf (error_msg, "Alias value %s is not defined",
|
||||
temp_var->alias_binding->name);
|
||||
program_error (ctx, Program->Position, error_msg);
|
||||
_mesa_free (error_msg);
|
||||
program_error2(ctx, Program->Position,
|
||||
"Undefined alias value",
|
||||
(char *) temp_var->alias_binding->name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -2087,12 +2109,9 @@ parse_address (GLcontext * ctx, const GLubyte ** inst, struct var_cache **vc_hea
|
|||
temp_var = parse_string (inst, vc_head, Program, &found);
|
||||
Program->Position = parse_position (inst);
|
||||
if (found) {
|
||||
char *error_msg = (char *)
|
||||
_mesa_malloc (_mesa_strlen ((char *) temp_var->name) + 40);
|
||||
_mesa_sprintf (error_msg, "Duplicate Varible Declaration: %s",
|
||||
temp_var->name);
|
||||
program_error (ctx, Program->Position, error_msg);
|
||||
_mesa_free (error_msg);
|
||||
program_error2(ctx, Program->Position,
|
||||
"Duplicate variable declaration",
|
||||
(char *) temp_var->name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -2445,8 +2464,9 @@ parse_src_reg (GLcontext * ctx, const GLubyte ** inst,
|
|||
Program->Position = parse_position (inst);
|
||||
|
||||
if (!found) {
|
||||
program_error(ctx, Program->Position,
|
||||
"2: Undefined variable"); /* src->name */
|
||||
program_error2(ctx, Program->Position,
|
||||
"Undefined variable",
|
||||
(char *) src->name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -440,7 +440,7 @@ _mesa_PassTexCoordATI(GLuint dst, GLuint coord, GLenum swizzle)
|
|||
_mesa_error(ctx, GL_INVALID_OPERATION, "glPassTexCoordATI(coord)");
|
||||
return;
|
||||
}
|
||||
if ((swizzle < GL_SWIZZLE_STR_ATI) && (swizzle > GL_SWIZZLE_STQ_DQ_ATI)) {
|
||||
if (!(swizzle >= GL_SWIZZLE_STR_ATI) && (swizzle <= GL_SWIZZLE_STQ_DQ_ATI)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glPassTexCoordATI(swizzle)");
|
||||
return;
|
||||
}
|
||||
|
@ -513,7 +513,7 @@ _mesa_SampleMapATI(GLuint dst, GLuint interp, GLenum swizzle)
|
|||
_mesa_error(ctx, GL_INVALID_OPERATION, "glSampleMapATI(interp)");
|
||||
return;
|
||||
}
|
||||
if ((swizzle < GL_SWIZZLE_STR_ATI) && (swizzle > GL_SWIZZLE_STQ_DQ_ATI)) {
|
||||
if (!(swizzle >= GL_SWIZZLE_STR_ATI) && (swizzle <= GL_SWIZZLE_STQ_DQ_ATI)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glSampleMapATI(swizzle)");
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -507,6 +507,8 @@ _mesa_program_state_flags(const gl_state_index state[STATE_LENGTH])
|
|||
switch (state[1]) {
|
||||
case STATE_TEXRECT_SCALE:
|
||||
return _NEW_TEXTURE;
|
||||
case STATE_FOG_PARAMS_OPTIMIZED:
|
||||
return _NEW_FOG;
|
||||
default:
|
||||
/* unknown state indexes are silently ignored and
|
||||
* no flag set, since it is handled by the driver.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue