OSDN Git Service

0dbb49dabc630155baaff1279cba36dd2147d3fc
[csp-qt/common_source_project-fm7.git] / source / src / qt / gui / draw_thread.h
1 /*
2         Skelton for retropc emulator
3         Author : Takeda.Toshiya
4         Port to Qt : K.Ohta <whatisthis.sowhat _at_ gmail.com>
5         Date   : 2006.08.18 -
6         License : GPLv2
7         History : 2015.11.10 Split from qt_main.h
8         [ win32 main ] -> [ Qt main ] -> [Draw]
9 */
10 #ifndef _CSP_QT_DRAW_THREAD_H
11 #define _CSP_QT_DRAW_THREAD_H
12
13 #include <QThread>
14 #include <QScreen>
15 #include <QWaitCondition>
16
17 #include <SDL.h>
18
19 #include "qt_gldraw.h"
20
21 class Ui_MainWindowBase;
22 class EMU;
23 class OSD;
24 class CSP_Logger;
25 QT_BEGIN_NAMESPACE
26
27 class DLL_PREFIX DrawThreadClass : public QThread {
28         Q_OBJECT
29  private:
30         OSD *p_osd;
31         Ui_MainWindowBase *MainWindow;
32         GLDrawClass *glv;
33
34         qreal refresh_rate;
35         qreal wait_refresh;
36         qreal wait_count;
37         int wait_factor;
38         int rec_frame_count;
39         int rec_frame_width;
40         int rec_frame_height;
41         
42  protected:
43         QScreen *screen;
44         int draw_frames;
45         bool bRunThread;
46         bool bDrawReq;
47         bitmap_t *draw_screen_buffer;
48         CSP_Logger *csp_logger;
49  public:
50         DrawThreadClass(OSD *o, CSP_Logger *logger, QObject *parent = 0);
51         ~DrawThreadClass();
52         void run() { doWork("");}
53         void SetEmu(EMU *p);
54 public slots:
55         void doWork(const QString &);
56         void doExit(void);
57         void doDraw(bool flag);
58         void do_change_refresh_rate(qreal rate);
59         void do_update_screen(bitmap_t *p);
60         void do_req_encueue_video(int count, int width, int height);
61 signals:
62         int sig_draw_frames(int);
63         int message_changed(QString);
64         int sig_update_screen(bitmap_t *);
65         int sig_draw_timing(bool);
66         int sig_push_frames_to_avio(int, int, int);
67         int sig_call_draw_screen();
68         int sig_call_no_draw_screen();
69 };
70
71 QT_END_NAMESPACE
72 #endif