3 * (c) 2011 K.Ohta <whatisthis.sowhat@gmail.com>
4 * Modified to Common Source code Project, License is changed to GPLv2.
7 #ifndef _CSP_QT_GLDRAW_H
8 #define _CSP_QT_GLDRAW_H
11 #include "../osd_types.h"
12 #include "dropdown_keyset.h"
13 #include "menu_flags.h"
22 struct NativeScanCode {
26 struct NativeVirtualKeyCode {
31 class GLDrawClass: public QGLWidget
36 bool is_mouse_enabled;
39 GLfloat screen_width, screen_height;
50 void keyReleaseEvent(QKeyEvent *event);
51 void keyPressEvent(QKeyEvent *event);
56 uint32_t get106Scancode2VK(uint32_t data);
58 // extern class GLCLDraw *cldraw;
60 bool QueryGLExtensions(const char *str);
61 void InitGLExtensionVars(void);
62 void InitContextCL(void);
64 QString filename_screen_pixmap;
66 void SaveToPixmap(void);
68 CSP_KeyTables *key_table;
71 GLDrawClass(QWidget *parent = 0);
74 QSize minimumSizeHint() const;
75 QSize sizeHint() const;
76 QSize getCanvasSize();
79 QStringList *getKeyNames(void);
80 QStringList *getVKNames(void);
81 keydef_table_t *get_key_table(int index);
82 keydef_table_t *get_key_tables(void);
83 keydef_table_t *get_base_key_table(void);
84 const keydef_table_t *get_default_key_table(void);
85 int get_key_table_size(void);
86 uint32_t get_vk_from_index(int index);
87 uint32_t get_scan_from_index(int index);
88 const char *get_key_vk_name(int index);
89 quint32 getModState(void) { return modifier;}
92 void closeEvent(QCloseEvent *event);
93 void drawUpdateTexture(bitmap_t *p);
96 void initKeyCode(void);
97 void releaseKeyCode(void);
99 void update_screen(bitmap_t *);
100 void resizeGL(int width, int height);
101 void mouseMoveEvent(QMouseEvent *event);
102 void mousePressEvent(QMouseEvent *event);
103 void mouseReleaseEvent(QMouseEvent *event);
105 void setEnableMouse(bool flag);
106 void setSmoosing(bool);
107 void setDrawGLGridVert(bool);
108 void setDrawGLGridHoriz(bool);
109 void setVirtualVramSize(int ,int);
110 void setChangeBrightness(bool);
111 void setBrightness(GLfloat r, GLfloat g, GLfloat b);
113 void updateBitmap(QImage *);
115 void setEmuPtr(EMU *p);
116 void enterEvent(QEvent *);
117 void leaveEvent(QEvent *);
118 void do_save_frame_screen(void);
119 void do_save_frame_screen(const char *);
120 void do_set_texture_size(QImage *p, int w, int h);
122 void do_set_screen_multiply(float mul);
123 void do_update_keyboard_scan_code(uint32_t vk, uint32_t scan);
124 void do_set_mouse_enabled(bool flag);
125 void do_stop_run_vm();
127 void update_screenChanged(int tick);
128 void do_notify_move_mouse(int x, int y);
130 void sig_toggle_mouse(void);
131 void do_notify_button_pressed(Qt::MouseButton button);
132 void do_notify_button_released(Qt::MouseButton button);
133 void sig_check_grab_mouse(bool);
134 void sig_resize_uibar(int, int);
135 void sig_draw_timing(bool);
136 int sig_finished(void);
137 int sig_key_down(uint32_t, uint32_t, bool);
138 int sig_key_up(uint32_t, uint32_t);