forked from notaz/mesa
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSoftwareRenderer.h
54 lines (42 loc) · 1.34 KB
/
SoftwareRenderer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
* Copyright 2006-2012, Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Jérôme Duval, [email protected]
* Philippe Houdoin, [email protected]
* Artur Wyszynski, [email protected]
* Alexander von Gluck IV, [email protected]
*/
#ifndef SOFTWARERENDERER_H
#define SOFTWARERENDERER_H
#include <kernel/image.h>
#include "GLRenderer.h"
#include "GalliumContext.h"
class SoftwareRenderer : public BGLRenderer, public HGLWinsysContext {
public:
SoftwareRenderer(BGLView *view,
ulong bgl_options);
virtual ~SoftwareRenderer();
void LockGL();
void UnlockGL();
void Display(BBitmap* bitmap, BRect* updateRect);
void SwapBuffers(bool vsync = false);
void Draw(BRect updateRect);
status_t CopyPixelsOut(BPoint source, BBitmap *dest);
status_t CopyPixelsIn(BBitmap *source, BPoint dest);
void FrameResized(float width, float height);
void EnableDirectMode(bool enabled);
void DirectConnected(direct_buffer_info *info);
private:
GalliumContext* fContextObj;
context_id fContextID;
bool fDirectModeEnabled;
direct_buffer_info* fInfo;
BLocker fInfoLocker;
ulong fOptions;
GLuint fWidth;
GLuint fHeight;
color_space fColorSpace;
};
#endif // SOFTPIPERENDERER_H