target/haiku-softpipe: Move api init into st code
authorAlexander von Gluck IV <kallisti5@unixzen.com>
Thu, 14 May 2015 22:30:35 +0000 (17:30 -0500)
committerAlexander von Gluck IV <kallisti5@unixzen.com>
Fri, 15 May 2015 17:55:59 +0000 (13:55 -0400)
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 <brianp@vmware.com>
src/gallium/targets/haiku-softpipe/GalliumContext.cpp
src/gallium/targets/haiku-softpipe/GalliumContext.h

index b24aef7dd5d9bffc70281ffa3a9a8d8894e0d3d5..1e3874bdb17905334f43a484bb61ca8c8dc7f5b6 100644 (file)
 #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]
index b50d52895fc573a919ae71fc9169973cd7dc2a6d..22076cbb141315c157d5927f95c95e909e0d14eb 100644 (file)
 #include <stddef.h>
 #include <kernel/image.h>
 
-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 */