From 354895bfb73e42dfb89422c3323b658fe11d7c36 Mon Sep 17 00:00:00 2001 From: Nathan Heisey Date: Wed, 3 Aug 2011 05:09:36 +0000 Subject: [PATCH] Fixed minor rendering issues. --- src/video/bwindow/SDL_BWin.h | 4 ++-- src/video/bwindow/SDL_bframebuffer.cc | 2 +- src/video/bwindow/SDL_bwindow.cc | 22 ++++++++++++++++++++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/video/bwindow/SDL_BWin.h b/src/video/bwindow/SDL_BWin.h index f52180e82..0e423a1a9 100644 --- a/src/video/bwindow/SDL_BWin.h +++ b/src/video/bwindow/SDL_BWin.h @@ -63,8 +63,8 @@ class SDL_BWin:public BDirectWindow { public: /* Constructor/Destructor */ - SDL_BWin(BRect bounds):BDirectWindow(bounds, "Untitled", - B_TITLED_WINDOW, 0) + SDL_BWin(BRect bounds, uint32 flags):BDirectWindow(bounds, "Untitled", + B_TITLED_WINDOW, flags) { _last_buttons = 0; diff --git a/src/video/bwindow/SDL_bframebuffer.cc b/src/video/bwindow/SDL_bframebuffer.cc index 98634a49e..7b93f800f 100644 --- a/src/video/bwindow/SDL_bframebuffer.cc +++ b/src/video/bwindow/SDL_bframebuffer.cc @@ -53,7 +53,7 @@ int BE_CreateWindowFramebuffer(_THIS, SDL_Window * window, /* Make sure we have exclusive access to frame buffer data */ bwin->LockBuffer(); - + /* format */ display_mode bmode; bscreen.GetMode(&bmode); diff --git a/src/video/bwindow/SDL_bwindow.cc b/src/video/bwindow/SDL_bwindow.cc index e1912261a..2297fc800 100644 --- a/src/video/bwindow/SDL_bwindow.cc +++ b/src/video/bwindow/SDL_bwindow.cc @@ -38,20 +38,32 @@ static inline SDL_BApp *_GetBeApp() { } int _InitWindow(_THIS, SDL_Window *window) { + uint32 flags = 0; BRect bounds( window->x, window->y, window->x + window->w - 1, //BeWindows have an off-by-one px w/h thing window->y + window->h - 1 ); - - SDL_BWin *bwin = new(std::nothrow) SDL_BWin(bounds); + + if(window->flags & SDL_WINDOW_FULLSCREEN) { + } + if(window->flags & SDL_WINDOW_OPENGL) { + } + if(!(window->flags & SDL_WINDOW_RESIZABLE)) { + flags |= B_NOT_RESIZABLE; + } + if(window->flags & SDL_WINDOW_BORDERLESS) { + } + + SDL_BWin *bwin = new(std::nothrow) SDL_BWin(bounds, flags); if(bwin == NULL) return ENOMEM; window->driverdata = bwin; int32 winID = _GetBeApp()->GetID(window); bwin->SetID(winID); + return 0; } @@ -59,6 +71,7 @@ int BE_CreateWindow(_THIS, SDL_Window *window) { if(_InitWindow(_this, window) == ENOMEM) return ENOMEM; + printf("Flags = 0x%x\n", window->flags); /* Start window loop */ _ToBeWin(window)->Show(); return 0; @@ -76,6 +89,11 @@ int BE_CreateWindowFrom(_THIS, SDL_Window * window, const void *data) { window->w = (int)otherBWin->Frame().Width(); window->h = (int)otherBWin->Frame().Height(); + /* Set SDL flags */ + if(!(otherBWin->Flags() & B_NOT_RESIZABLE)) { + window->flags |= SDL_WINDOW_RESIZABLE; + } + /* If we are out of memory, return the error code */ if(_InitWindow(_this, window) == ENOMEM) return ENOMEM;