Commit 34a5d3b9 authored by Brian Paul's avatar Brian Paul

mesa: plug in new functions for GL_ARB_sampler_objects

Build the new sources, plug the new functions into the dispatch table,
implement display list support.  And enable extension in the gallium
state tracker.
parent f22d49de
......@@ -100,6 +100,7 @@ main_sources = [
'main/readpix.c',
'main/remap.c',
'main/renderbuffer.c',
'main/samplerobj.c',
'main/scissor.c',
'main/shaderapi.c',
'main/shaderobj.c',
......
......@@ -78,6 +78,9 @@
#include "polygon.h"
#include "queryobj.h"
#include "readpix.h"
#if FEATURE_ARB_sampler_objects
#include "samplerobj.h"
#endif
#include "scissor.h"
#include "stencil.h"
#include "texenv.h"
......@@ -729,6 +732,10 @@ _mesa_create_exec_table(void)
/* GL_ARB_texture_buffer_object */
SET_TexBufferARB(exec, _mesa_TexBuffer);
#if FEATURE_ARB_sampler_objects
_mesa_init_sampler_object_dispatch(exec);
#endif
return exec;
}
......
......@@ -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);
......
......@@ -122,6 +122,7 @@
#define FEATURE_ARB_framebuffer_object (FEATURE_GL && FEATURE_EXT_framebuffer_object)
#define FEATURE_ARB_map_buffer_range FEATURE_GL
#define FEATURE_ARB_pixel_buffer_object (FEATURE_GL && FEATURE_EXT_pixel_buffer_object)
#define FEATURE_ARB_sampler_objects FEATURE_GL
#define FEATURE_ARB_sync FEATURE_GL
#define FEATURE_ARB_vertex_buffer_object 1
......
......@@ -71,6 +71,7 @@ MAIN_SOURCES = \
main/readpix.c \
main/remap.c \
main/renderbuffer.c \
main/samplerobj.c \
main/scissor.c \
main/shaderapi.c \
main/shaderobj.c \
......
......@@ -27,6 +27,7 @@
#include "main/imports.h"
#include "main/context.h"
#include "main/samplerobj.h"
#include "main/shaderobj.h"
#include "program/prog_cache.h"
#include "vbo/vbo.h"
......@@ -269,6 +270,7 @@ void st_destroy_context( struct st_context *st )
void st_init_driver_functions(struct dd_function_table *functions)
{
_mesa_init_shader_object_functions(functions);
_mesa_init_sampler_object_functions(functions);
st_init_accum_functions(functions);
st_init_blit_functions(functions);
......
......@@ -228,6 +228,7 @@ void st_init_extensions(struct st_context *st)
ctx->Extensions.ARB_half_float_pixel = GL_TRUE;
ctx->Extensions.ARB_map_buffer_range = GL_TRUE;
ctx->Extensions.ARB_multisample = GL_TRUE;
ctx->Extensions.ARB_sampler_objects = GL_TRUE;
ctx->Extensions.ARB_texture_border_clamp = GL_TRUE; /* XXX temp */
ctx->Extensions.ARB_texture_compression = GL_TRUE;
ctx->Extensions.ARB_texture_cube_map = GL_TRUE;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment