i915: Don't overwrite i915's Viewport function from generic code.
Instead, have i965 and i915 both call the generic function from their Viewport.
This commit is contained in:
@@ -267,6 +267,8 @@ intelViewport(GLcontext * ctx,
|
||||
GLint x, GLint y, GLsizei width, GLsizei height)
|
||||
{
|
||||
intelCalcViewport(ctx);
|
||||
|
||||
intel_viewport(ctx, x, y, width, height);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -71,6 +71,8 @@ static void brwInitDriverFunctions( struct dd_function_table *functions )
|
||||
brwInitFragProgFuncs( functions );
|
||||
brwInitProgFuncs( functions );
|
||||
brw_init_queryobj_functions(functions);
|
||||
|
||||
functions->Viewport = intel_viewport;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -317,11 +317,13 @@ intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
|
||||
driUpdateFramebufferSize(&intel->ctx, drawable);
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
intel_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
|
||||
{
|
||||
struct intel_context *intel = intel_context(ctx);
|
||||
__DRIcontext *driContext = intel->driContext;
|
||||
void (*old_viewport)(GLcontext *ctx, GLint x, GLint y,
|
||||
GLsizei w, GLsizei h);
|
||||
|
||||
if (!driContext->driScreenPriv->dri2.enabled)
|
||||
return;
|
||||
@@ -330,11 +332,12 @@ intel_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
|
||||
if (driContext->driDrawablePriv != driContext->driReadablePriv)
|
||||
intel_update_renderbuffers(driContext, driContext->driReadablePriv);
|
||||
|
||||
old_viewport = ctx->Driver.Viewport;
|
||||
ctx->Driver.Viewport = NULL;
|
||||
intel->driDrawable = driContext->driDrawablePriv;
|
||||
intelWindowMoved(intel);
|
||||
intel_draw_buffer(ctx, intel->ctx.DrawBuffer);
|
||||
ctx->Driver.Viewport = intel_viewport;
|
||||
ctx->Driver.Viewport = old_viewport;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -544,7 +547,6 @@ intelInitDriverFunctions(struct dd_function_table *functions)
|
||||
functions->Finish = intelFinish;
|
||||
functions->GetString = intelGetString;
|
||||
functions->UpdateState = intelInvalidateState;
|
||||
functions->Viewport = intel_viewport;
|
||||
|
||||
functions->CopyColorTable = _swrast_CopyColorTable;
|
||||
functions->CopyColorSubTable = _swrast_CopyColorSubTable;
|
||||
|
@@ -495,6 +495,9 @@ extern int intel_translate_stencil_op(GLenum op);
|
||||
extern int intel_translate_blend_factor(GLenum factor);
|
||||
extern int intel_translate_logic_op(GLenum opcode);
|
||||
|
||||
void intel_viewport(GLcontext * ctx, GLint x, GLint y,
|
||||
GLsizei width, GLsizei height);
|
||||
|
||||
void intel_update_renderbuffers(__DRIcontext *context,
|
||||
__DRIdrawable *drawable);
|
||||
|
||||
|
Reference in New Issue
Block a user