dri: Add DRI entrypoints to create a context for a given API

This commit is contained in:
Kristian Høgsberg
2010-04-27 11:04:51 -04:00
parent e2fd98d794
commit 4b69100bdc
8 changed files with 22 additions and 13 deletions

View File

@@ -63,7 +63,7 @@ i830CreateContext(const __GLcontextModes * mesaVis,
i830InitVtbl(i830);
i830InitDriverFunctions(&functions);
if (!intelInitContext(intel, mesaVis, driContextPriv,
if (!intelInitContext(intel, __DRI_API_OPENGL, mesaVis, driContextPriv,
sharedContextPrivate, &functions)) {
FREE(i830);
return GL_FALSE;

View File

@@ -94,7 +94,8 @@ i915InitDriverFunctions(struct dd_function_table *functions)
extern const struct tnl_pipeline_stage *intel_pipeline[];
GLboolean
i915CreateContext(const __GLcontextModes * mesaVis,
i915CreateContext(int api,
const __GLcontextModes * mesaVis,
__DRIcontext * driContextPriv,
void *sharedContextPrivate)
{
@@ -114,7 +115,7 @@ i915CreateContext(const __GLcontextModes * mesaVis,
i915InitDriverFunctions(&functions);
if (!intelInitContext(intel, mesaVis, driContextPriv,
if (!intelInitContext(intel, api, mesaVis, driContextPriv,
sharedContextPrivate, &functions)) {
FREE(i915);
return GL_FALSE;

View File

@@ -318,7 +318,8 @@ do { \
/*======================================================================
* i915_context.c
*/
extern GLboolean i915CreateContext(const __GLcontextModes * mesaVis,
extern GLboolean i915CreateContext(int api,
const __GLcontextModes * mesaVis,
__DRIcontext * driContextPriv,
void *sharedContextPrivate);

View File

@@ -68,7 +68,8 @@ static void brwInitDriverFunctions( struct dd_function_table *functions )
functions->Viewport = intel_viewport;
}
GLboolean brwCreateContext( const __GLcontextModes *mesaVis,
GLboolean brwCreateContext( int api,
const __GLcontextModes *mesaVis,
__DRIcontext *driContextPriv,
void *sharedContextPrivate)
{
@@ -85,7 +86,7 @@ GLboolean brwCreateContext( const __GLcontextModes *mesaVis,
brwInitVtbl( brw );
brwInitDriverFunctions( &functions );
if (!intelInitContext( intel, mesaVis, driContextPriv,
if (!intelInitContext( intel, api, mesaVis, driContextPriv,
sharedContextPrivate, &functions )) {
printf("%s: failed to init intel context\n", __FUNCTION__);
FREE(brw);

View File

@@ -687,7 +687,8 @@ void brwInitVtbl( struct brw_context *brw );
/*======================================================================
* brw_context.c
*/
GLboolean brwCreateContext( const __GLcontextModes *mesaVis,
GLboolean brwCreateContext( int api,
const __GLcontextModes *mesaVis,
__DRIcontext *driContextPriv,
void *sharedContextPrivate);

View File

@@ -586,6 +586,7 @@ intelInitDriverFunctions(struct dd_function_table *functions)
GLboolean
intelInitContext(struct intel_context *intel,
int api,
const __GLcontextModes * mesaVis,
__DRIcontext * driContextPriv,
void *sharedContextPrivate,
@@ -601,8 +602,8 @@ intelInitContext(struct intel_context *intel,
if (intelScreen->bufmgr == NULL)
return GL_FALSE;
if (!_mesa_initialize_context(&intel->ctx, mesaVis, shareCtx,
functions, (void *) intel)) {
if (!_mesa_initialize_context_for_api(&intel->ctx, api, mesaVis, shareCtx,
functions, (void *) intel)) {
printf("%s: failed to init mesa context\n", __FUNCTION__);
return GL_FALSE;
}

View File

@@ -364,6 +364,7 @@ extern int INTEL_DEBUG;
*/
extern GLboolean intelInitContext(struct intel_context *intel,
int api,
const __GLcontextModes * mesaVis,
__DRIcontext * driContextPriv,
void *sharedContextPrivate,

View File

@@ -356,10 +356,12 @@ extern GLboolean i830CreateContext(const __GLcontextModes * mesaVis,
__DRIcontext * driContextPriv,
void *sharedContextPrivate);
extern GLboolean i915CreateContext(const __GLcontextModes * mesaVis,
extern GLboolean i915CreateContext(int api,
const __GLcontextModes * mesaVis,
__DRIcontext * driContextPriv,
void *sharedContextPrivate);
extern GLboolean brwCreateContext(const __GLcontextModes * mesaVis,
extern GLboolean brwCreateContext(int api,
const __GLcontextModes * mesaVis,
__DRIcontext * driContextPriv,
void *sharedContextPrivate);
@@ -375,7 +377,7 @@ intelCreateContext(gl_api api,
#ifdef I915
if (IS_9XX(intelScreen->deviceID)) {
if (!IS_965(intelScreen->deviceID)) {
return i915CreateContext(mesaVis, driContextPriv,
return i915CreateContext(api, mesaVis, driContextPriv,
sharedContextPrivate);
}
} else {
@@ -384,7 +386,8 @@ intelCreateContext(gl_api api,
}
#else
if (IS_965(intelScreen->deviceID))
return brwCreateContext(mesaVis, driContextPriv, sharedContextPrivate);
return brwCreateContext(api, mesaVis,
driContextPriv, sharedContextPrivate);
#endif
fprintf(stderr, "Unrecognized deviceID %x\n", intelScreen->deviceID);
return GL_FALSE;