Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Fixed minor rendering issues.
- Loading branch information
|
@@ -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; |
|
|
|
|
|
|
@@ -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); |
|
|
|
@@ -38,27 +38,40 @@ 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; |
|
|
} |
|
|
|
|
|
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; |
|
|