aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/main/dlist.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-04-12 12:47:58 +0000
committermarha <marha@users.sourceforge.net>2011-04-12 12:47:58 +0000
commit7730393619080086530e24d3b594351b4114f608 (patch)
tree582900958a9de9e787833ae72ea1a60181ba5965 /mesalib/src/mesa/main/dlist.c
parent2fb58f16eeec8ef3ec2a25e246477aab64e38a7d (diff)
downloadvcxsrv-7730393619080086530e24d3b594351b4114f608.tar.gz
vcxsrv-7730393619080086530e24d3b594351b4114f608.tar.bz2
vcxsrv-7730393619080086530e24d3b594351b4114f608.zip
mesa libXext pixman git update 12 Apr 2011
Diffstat (limited to 'mesalib/src/mesa/main/dlist.c')
-rw-r--r--mesalib/src/mesa/main/dlist.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/mesalib/src/mesa/main/dlist.c b/mesalib/src/mesa/main/dlist.c
index 7e86f1d0e..f66082e7f 100644
--- a/mesalib/src/mesa/main/dlist.c
+++ b/mesalib/src/mesa/main/dlist.c
@@ -49,6 +49,7 @@
#include "eval.h"
#include "framebuffer.h"
#include "glapi/glapi.h"
+#include "glapidispatch.h"
#include "hash.h"
#include "image.h"
#include "light.h"
@@ -437,6 +438,9 @@ typedef enum
/* GL_NV_texture_barrier */
OPCODE_TEXTURE_BARRIER_NV,
+ /* GL_ARB_sampler_object */
+ OPCODE_BIND_SAMPLER,
+
/* The following three are meta instructions */
OPCODE_ERROR, /* raise compiled-in error */
OPCODE_CONTINUE,
@@ -7066,6 +7070,24 @@ save_TextureBarrierNV(void)
}
+/* GL_ARB_sampler_objects */
+static void
+save_BindSampler(GLuint unit, GLuint sampler)
+{
+ Node *n;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_BIND_SAMPLER, 2);
+ if (n) {
+ n[1].ui = unit;
+ n[2].ui = sampler;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_BindSampler(ctx->Exec, (unit, sampler));
+ }
+}
+
+
/**
* Save an error-generating command into display list.
*
@@ -8249,6 +8271,10 @@ execute_list(struct gl_context *ctx, GLuint list)
CALL_TextureBarrierNV(ctx->Exec, ());
break;
+ case OPCODE_BIND_SAMPLER:
+ CALL_BindSampler(ctx->Exec, (n[1].ui, n[2].ui));
+ break;
+
case OPCODE_CONTINUE:
n = (Node *) n[1].next;
break;
@@ -9930,6 +9956,9 @@ _mesa_create_save_table(void)
/* GL_NV_texture_barrier */
SET_TextureBarrierNV(table, save_TextureBarrierNV);
+ /* GL_ARB_sampler_objects */
+ SET_BindSampler(table, save_BindSampler);
+
/* GL_ARB_draw_buffer_blend */
SET_BlendFunciARB(table, save_BlendFunci);
SET_BlendFuncSeparateiARB(table, save_BlendFuncSeparatei);