|
@@ -38,40 +38,40 @@ extern "C" {
|
|
|
#define BGL_FLAGS BGL_RGB | BGL_DOUBLE
|
|
|
|
|
|
static SDL_INLINE SDL_BWin *_ToBeWin(SDL_Window *window) {
|
|
|
- return ((SDL_BWin*)(window->driverdata));
|
|
|
+ return ((SDL_BWin*)(window->driverdata));
|
|
|
}
|
|
|
|
|
|
static SDL_INLINE SDL_BApp *_GetBeApp() {
|
|
|
- return ((SDL_BApp*)be_app);
|
|
|
+ return ((SDL_BApp*)be_app);
|
|
|
}
|
|
|
|
|
|
/* Passing a NULL path means load pointers from the application */
|
|
|
int BE_GL_LoadLibrary(_THIS, const char *path)
|
|
|
{
|
|
|
/* FIXME: Is this working correctly? */
|
|
|
- image_info info;
|
|
|
- int32 cookie = 0;
|
|
|
- while (get_next_image_info(0, &cookie, &info) == B_OK) {
|
|
|
- void *location = NULL;
|
|
|
- if( get_image_symbol(info.id, "glBegin", B_SYMBOL_TYPE_ANY,
|
|
|
- &location) == B_OK) {
|
|
|
-
|
|
|
- _this->gl_config.dll_handle = (void *) info.id;
|
|
|
- _this->gl_config.driver_loaded = 1;
|
|
|
- SDL_strlcpy(_this->gl_config.driver_path, "libGL.so",
|
|
|
- SDL_arraysize(_this->gl_config.driver_path));
|
|
|
- }
|
|
|
- }
|
|
|
- return 0;
|
|
|
+ image_info info;
|
|
|
+ int32 cookie = 0;
|
|
|
+ while (get_next_image_info(0, &cookie, &info) == B_OK) {
|
|
|
+ void *location = NULL;
|
|
|
+ if( get_image_symbol(info.id, "glBegin", B_SYMBOL_TYPE_ANY,
|
|
|
+ &location) == B_OK) {
|
|
|
+
|
|
|
+ _this->gl_config.dll_handle = (void *) info.id;
|
|
|
+ _this->gl_config.driver_loaded = 1;
|
|
|
+ SDL_strlcpy(_this->gl_config.driver_path, "libGL.so",
|
|
|
+ SDL_arraysize(_this->gl_config.driver_path));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
void *BE_GL_GetProcAddress(_THIS, const char *proc)
|
|
|
{
|
|
|
- if (_this->gl_config.dll_handle != NULL) {
|
|
|
- void *location = NULL;
|
|
|
- status_t err;
|
|
|
- if ((err =
|
|
|
- get_image_symbol((image_id) _this->gl_config.dll_handle,
|
|
|
+ if (_this->gl_config.dll_handle != NULL) {
|
|
|
+ void *location = NULL;
|
|
|
+ status_t err;
|
|
|
+ if ((err =
|
|
|
+ get_image_symbol((image_id) _this->gl_config.dll_handle,
|
|
|
proc, B_SYMBOL_TYPE_ANY,
|
|
|
&location)) == B_OK) {
|
|
|
return location;
|
|
@@ -79,52 +79,53 @@ void *BE_GL_GetProcAddress(_THIS, const char *proc)
|
|
|
SDL_SetError("Couldn't find OpenGL symbol");
|
|
|
return NULL;
|
|
|
}
|
|
|
- } else {
|
|
|
- SDL_SetError("OpenGL library not loaded");
|
|
|
- return NULL;
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ SDL_SetError("OpenGL library not loaded");
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-void BE_GL_SwapWindow(_THIS, SDL_Window * window) {
|
|
|
+int BE_GL_SwapWindow(_THIS, SDL_Window * window) {
|
|
|
_ToBeWin(window)->SwapBuffers();
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
int BE_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context) {
|
|
|
- _GetBeApp()->SetCurrentContext(((SDL_BWin*)context)->GetGLView());
|
|
|
- return 0;
|
|
|
+ _GetBeApp()->SetCurrentContext(((SDL_BWin*)context)->GetGLView());
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
SDL_GLContext BE_GL_CreateContext(_THIS, SDL_Window * window) {
|
|
|
- /* FIXME: Not sure what flags should be included here; may want to have
|
|
|
- most of them */
|
|
|
- SDL_BWin *bwin = _ToBeWin(window);
|
|
|
- bwin->CreateGLView(BGL_FLAGS);
|
|
|
- return (SDL_GLContext)(bwin);
|
|
|
+ /* FIXME: Not sure what flags should be included here; may want to have
|
|
|
+ most of them */
|
|
|
+ SDL_BWin *bwin = _ToBeWin(window);
|
|
|
+ bwin->CreateGLView(BGL_FLAGS);
|
|
|
+ return (SDL_GLContext)(bwin);
|
|
|
}
|
|
|
|
|
|
void BE_GL_DeleteContext(_THIS, SDL_GLContext context) {
|
|
|
- /* Currently, automatically unlocks the view */
|
|
|
- ((SDL_BWin*)context)->RemoveGLView();
|
|
|
+ /* Currently, automatically unlocks the view */
|
|
|
+ ((SDL_BWin*)context)->RemoveGLView();
|
|
|
}
|
|
|
|
|
|
|
|
|
int BE_GL_SetSwapInterval(_THIS, int interval) {
|
|
|
- /* TODO: Implement this, if necessary? */
|
|
|
- return 0;
|
|
|
+ /* TODO: Implement this, if necessary? */
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
int BE_GL_GetSwapInterval(_THIS) {
|
|
|
- /* TODO: Implement this, if necessary? */
|
|
|
- return 0;
|
|
|
+ /* TODO: Implement this, if necessary? */
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
void BE_GL_UnloadLibrary(_THIS) {
|
|
|
- /* TODO: Implement this, if necessary? */
|
|
|
+ /* TODO: Implement this, if necessary? */
|
|
|
}
|
|
|
|
|
|
|
|
@@ -132,17 +133,17 @@ void BE_GL_UnloadLibrary(_THIS) {
|
|
|
mode changes (see SDL_bmodes.cc), but it doesn't seem to help, and is not
|
|
|
currently in use. */
|
|
|
void BE_GL_RebootContexts(_THIS) {
|
|
|
- SDL_Window *window = _this->windows;
|
|
|
- while(window) {
|
|
|
- SDL_BWin *bwin = _ToBeWin(window);
|
|
|
- if(bwin->GetGLView()) {
|
|
|
- bwin->LockLooper();
|
|
|
- bwin->RemoveGLView();
|
|
|
- bwin->CreateGLView(BGL_FLAGS);
|
|
|
- bwin->UnlockLooper();
|
|
|
- }
|
|
|
- window = window->next;
|
|
|
- }
|
|
|
+ SDL_Window *window = _this->windows;
|
|
|
+ while(window) {
|
|
|
+ SDL_BWin *bwin = _ToBeWin(window);
|
|
|
+ if(bwin->GetGLView()) {
|
|
|
+ bwin->LockLooper();
|
|
|
+ bwin->RemoveGLView();
|
|
|
+ bwin->CreateGLView(BGL_FLAGS);
|
|
|
+ bwin->UnlockLooper();
|
|
|
+ }
|
|
|
+ window = window->next;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -217,3 +218,5 @@ void BE_GL_RebootContexts(_THIS) {
|
|
|
#endif
|
|
|
|
|
|
#endif /* SDL_VIDEO_DRIVER_HAIKU */
|
|
|
+
|
|
|
+/* vi: set ts=4 sw=4 expandtab: */
|