2 Skelton for retropc emulator
3 Author : Takeda.Toshiya
4 Port to Qt : K.Ohta <whatisthis.sowhat _at_ gmail.com>
7 History : 2015.11.10 Split from qt_main.h
8 [ win32 main ] -> [ Qt main ] -> [Draw]
10 #ifndef _CSP_QT_DRAW_THREAD_H
11 #define _CSP_QT_DRAW_THREAD_H
17 #include "qt_gldraw.h"
19 class Ui_MainWindowBase;
28 class DLL_PREFIX DrawThreadClass : public QThread {
32 Ui_MainWindowBase *MainWindow;
44 USING_FLAGS *using_flags;
49 bool bRecentRenderStatus;
50 bool use_separate_thread_draw;
51 bitmap_t *draw_screen_buffer;
52 CSP_Logger *csp_logger;
54 double emu_frame_rate;
57 scrntype_t *mapping_pointer;
61 void doDrawMain(bool flag);
63 DrawThreadClass(OSD *o, CSP_Logger *logger, QObject *parent = 0);
65 QSemaphore *renderSemaphore;
66 QSemaphore *textureMappingSemaphore;
68 void run() { doWork("");}
71 void doWork(const QString &);
73 void doDraw(bool flag);
74 void do_change_refresh_rate(qreal rate);
75 void do_update_screen(bitmap_t *p);
76 void do_req_encueue_video(int count, int width, int height);
77 void do_draw_one_turn(bool _req_draw);
78 void do_set_frames_per_second(double fps);
79 void do_recv_texture_map_status(bool f, void *p, int width, int height);
80 void do_recv_texture_unmap_status(void);
82 void req_map_screen_texture();
83 void req_unmap_screen_texture();
85 int sig_draw_frames(int);
86 int message_changed(QString);
87 int sig_update_screen(bitmap_t *);
88 int sig_update_osd(void);
89 int sig_draw_timing(bool);
90 int sig_push_frames_to_avio(int, int, int);
91 int sig_call_draw_screen();
92 int sig_call_no_draw_screen();
93 int sig_map_texture();
94 int sig_unmap_texture();