2 SDL - Simple DirectMedia Layer
3 Copyright (C) 1997-2009 Sam Lantinga
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 #include "SDL_config.h"
27 /* This is the event handling and graphics update portion of SDL_BWin */
30 #include "../../events/SDL_events_c.h"
33 class SDL_BView : public BView
36 SDL_BView(BRect frame) :
37 BView(frame, "SDL View", B_FOLLOW_ALL_SIDES,
38 (B_WILL_DRAW|B_FRAME_EVENTS)) {
41 SetViewColor(0,0,0,0);
42 SetHighColor(0,0,0,0);
44 virtual ~SDL_BView() {
47 /* Set drawing offsets for fullscreen mode */
48 virtual void SetXYOffset(int x, int y) {
52 virtual void GetXYOffset(int &x, int &y) {
56 virtual void GetXYOffset(float &x, float &y) {
60 /* The view changed size. If it means we're in fullscreen, we
61 * draw a nice black box in the entire view to get black borders.
63 virtual void FrameResized(float width, float height) {
65 bounds.top = bounds.left = 0;
67 bounds.bottom = height;
68 /* Fill the entire view with black */
69 FillRect(bounds, B_SOLID_HIGH);
70 /* And if there's an image, redraw it. */
72 bounds = image->Bounds();
77 /* Drawing portion of this complete breakfast. :) */
78 virtual void SetBitmap(BBitmap *bitmap) {
84 virtual void Draw(BRect updateRect) {
88 dest.top = updateRect.top + yoff;
89 dest.left = updateRect.left + xoff;
90 dest.bottom = updateRect.bottom + yoff;
91 dest.right = updateRect.right + xoff;
92 DrawBitmap(image, updateRect, dest);
94 DrawBitmap(image, updateRect, updateRect);
98 virtual void DrawAsync(BRect updateRect) {
101 dest.top = updateRect.top + yoff;
102 dest.left = updateRect.left + xoff;
103 dest.bottom = updateRect.bottom + yoff;
104 dest.right = updateRect.right + xoff;;
105 DrawBitmapAsync(image, updateRect, dest);
107 DrawBitmapAsync(image, updateRect, updateRect);
116 #endif /* _SDL_BView_h */