From 7de484871dae1643cbecf346066968f61684f06f Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Thu, 14 May 2015 17:30:35 -0500 Subject: [PATCH] target/haiku-softpipe: Move api init into st code We also reduce the amount of need-to-know information about st_api to require one less extern "C" in st_manager.h Reviewed-by: Brian Paul --- .../targets/haiku-softpipe/GalliumContext.cpp | 23 ++++++++----------- .../targets/haiku-softpipe/GalliumContext.h | 6 +---- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp index b24aef7dd5d..1e3874bdb17 100644 --- a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp +++ b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp @@ -15,14 +15,13 @@ #include "GLView.h" #include "bitmap_wrapper.h" -extern "C" { + #include "glapi/glapi.h" #include "pipe/p_format.h" -#include "state_tracker/st_cb_fbo.h" -#include "state_tracker/st_cb_flush.h" +//#include "state_tracker/st_cb_fbo.h" +//#include "state_tracker/st_cb_flush.h" #include "state_tracker/st_context.h" #include "state_tracker/st_gl_api.h" -#include "state_tracker/st_manager.h" #include "state_tracker/sw_winsys.h" #include "sw/hgl/hgl_sw_winsys.h" #include "util/u_atomic.h" @@ -30,7 +29,6 @@ extern "C" { #include "target-helpers/inline_sw_helper.h" #include "target-helpers/inline_debug_helper.h" -} #ifdef DEBUG @@ -127,7 +125,8 @@ GalliumContext::CreateContext(Bitmap *bitmap) context->read = NULL; context->st = NULL; - context->api = st_gl_api_create(); + // Create st_gl_api + context->api = hgl_create_st_api(); if (!context->api) { ERROR("%s: Couldn't obtain Mesa state tracker API!\n", __func__); return -1; @@ -159,12 +158,10 @@ GalliumContext::CreateContext(Bitmap *bitmap) attribs.minor = 0; //attribs.flags |= ST_CONTEXT_FLAG_DEBUG; - struct st_api* api = context->api; - // Create context using state tracker api call enum st_context_error result; - context->st = api->create_context(api, context->manager, &attribs, - &result, context->st); + context->st = context->api->create_context(context->api, context->manager, + &attribs, &result, context->st); if (!context->st) { ERROR("%s: Couldn't create mesa state tracker context!\n", @@ -289,10 +286,8 @@ GalliumContext::SetCurrentContext(Bitmap *bitmap, context_id contextID) return B_ERROR; } - struct st_api* api = context->api; - if (!bitmap) { - api->make_current(context->api, NULL, NULL, NULL); + context->api->make_current(context->api, NULL, NULL, NULL); return B_OK; } @@ -305,7 +300,7 @@ GalliumContext::SetCurrentContext(Bitmap *bitmap, context_id contextID) } // We need to lock and unlock framebuffers before accessing them - api->make_current(context->api, context->st, context->draw->stfbi, + context->api->make_current(context->api, context->st, context->draw->stfbi, context->read->stfbi); //if (context->textures[ST_ATTACHMENT_BACK_LEFT] diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.h b/src/gallium/targets/haiku-softpipe/GalliumContext.h index b50d52895fc..22076cbb141 100644 --- a/src/gallium/targets/haiku-softpipe/GalliumContext.h +++ b/src/gallium/targets/haiku-softpipe/GalliumContext.h @@ -12,14 +12,10 @@ #include #include -extern "C" { -//#include "state_tracker/st_api.h" #include "pipe/p_compiler.h" #include "pipe/p_screen.h" #include "postprocess/filters.h" -#include "os/os_thread.h" #include "hgl_context.h" -} #include "bitmap_wrapper.h" @@ -56,6 +52,6 @@ private: context_id fCurrentContext; pipe_mutex fMutex; }; - + #endif /* GALLIUMCONTEXT_H */ -- 2.30.2