• R/O
  • HTTP
  • SSH
  • HTTPS

common_source_project-fm7: コミット

Common Source Code Project for Qt (a.k.a for FM-7).


コミットメタ情報

リビジョン8b47bf99ea34681f1cfb963156160522294c0a9f (tree)
日時2022-08-02 15:02:01
作者K.Ohta <whatisthis.sowhat@gmai...>
コミッターK.Ohta

ログメッセージ

[Qt][DRAW][OSD] Make config pointer fixed.

変更サマリ

差分

--- a/source/src/qt/gui/draw_thread.cpp
+++ b/source/src/qt/gui/draw_thread.cpp
@@ -34,8 +34,14 @@ DrawThreadClass::DrawThreadClass(OSD_BASE *o, std::shared_ptr<CSP_Logger> logger
3434 glv = MainWindow->getGraphicsView();
3535 p_osd = o;
3636 csp_logger = logger;
37- using_flags = NULL;
38- if(p_osd != NULL) using_flags = p_osd->get_config_flags();
37+ p_config = nullptr;
38+ using_flags.reset();
39+ if(p_osd != nullptr) {
40+ using_flags = p_osd->get_config_flags();
41+ if(using_flags.get() != nullptr) {
42+ p_config = using_flags->get_config_ptr();
43+ }
44+ }
3945 screen = QGuiApplication::primaryScreen();
4046
4147 is_shared_glcontext = false;
@@ -55,8 +61,8 @@ DrawThreadClass::DrawThreadClass(OSD_BASE *o, std::shared_ptr<CSP_Logger> logger
5561 //connect(this, SIGNAL(sig_call_draw_screen()), p_osd, SLOT(draw_screen()));
5662 //connect(this, SIGNAL(sig_call_no_draw_screen()), p_osd, SLOT(no_draw_screen()));
5763 use_separate_thread_draw = true;
58- if(using_flags->get_config_ptr() != NULL) {
59- use_separate_thread_draw = using_flags->get_config_ptr()->use_separate_thread_draw;
64+ if(p_config != nullptr) {
65+ use_separate_thread_draw = p_config->use_separate_thread_draw;
6066 }
6167 rec_frame_width = 640;
6268 rec_frame_height = 480;
@@ -90,8 +96,11 @@ DrawThreadClass::~DrawThreadClass()
9096 void DrawThreadClass::do_start_draw_thread(void)
9197 {
9298 bool _separate = false;
93- if(using_flags->get_config_ptr() != NULL) {
94- if(using_flags->get_config_ptr()->use_separate_thread_draw) {
99+ if(p_config == nullptr) {
100+ p_config = using_flags->get_config_ptr();
101+ }
102+ if(p_config != nullptr) {
103+ if(p_config->use_separate_thread_draw) {
95104 _separate = true;
96105 }
97106 }
@@ -116,7 +125,7 @@ void DrawThreadClass::do_set_frames_per_second(double fps)
116125 void DrawThreadClass::doDrawMain(bool flag)
117126 {
118127 //req_map_screen_texture();
119-// if(p_osd == NULL) return;
128+ if(p_osd == nullptr) return;
120129 p_osd->do_decode_movie(1);
121130 if(flag) {
122131 draw_frames = p_osd->draw_screen();
--- a/source/src/qt/gui/draw_thread.h
+++ b/source/src/qt/gui/draw_thread.h
@@ -29,6 +29,7 @@ class DLL_PREFIX DrawThreadClass : public QThread {
2929 Q_OBJECT
3030 private:
3131 OSD_BASE *p_osd;
32+ config_t *p_config;
3233 Ui_MainWindowBase *MainWindow;
3334 GLDrawClass *glv;
3435
--- a/source/src/qt/osd_base.h
+++ b/source/src/qt/osd_base.h
@@ -199,10 +199,10 @@ private:
199199
200200
201201 protected:
202- EmuThreadClass *parent_thread;
203- sdl_snddata_t snddata;
204- USING_FLAGS *using_flags;
205- config_t *p_config;
202+ EmuThreadClass *parent_thread;
203+ sdl_snddata_t snddata;
204+ USING_FLAGS *using_flags;
205+ config_t *p_config;
206206 std::shared_ptr<CSP_Logger> p_logger;
207207
208208 QOpenGLContext *glContext;
旧リポジトリブラウザで表示