OSDN Git Service

[VM][Qt][OSD][Genaral] Sync to upstream ; phase 1: Merege upstream 20151217.
[csp-qt/common_source_project-fm7.git] / source / src / vm / v99x8.cpp
index 6778d2a..b9c5dc0 100644 (file)
@@ -56,7 +56,11 @@ static int latch2;
 //#define Z80_NMI 0x0066
 
 #define        MD_BPP 32
-#define md_maprgb15(R,G,B) (((R)<<19)|((G)<<11)|((B)<<3))
+#if defined(USE_QT) || defined(_USE_QT) // Using Shader
+# define md_maprgb15(R,G,B) RGB_COLOR((R << 3), (G << 3), (B << 3))
+#else
+# define md_maprgb15(R,G,B) (((R)<<19)|((G)<<11)|((B)<<3))
+#endif
 #define md_video_pixbytes(n) (n*32/8)
 #define md_refresh_sync() (TRUE)
 #define        md_video_defaultopt() (0)
@@ -2819,10 +2823,12 @@ void V99X8::md_video_update(int n, /*md_video_rect_t*/void *rp)
                int y = 0;
                int h = SCREEN_HEIGHT;
                for(;h>0; h-=2) {
-                       dst = emu->screen_buffer(y);
-                       memcpy(dst, screen+y*SCREEN_WIDTH, SCREEN_WIDTH*4);
-                       dst = emu->screen_buffer(y+1);
-                       memcpy(dst, screen+y*SCREEN_WIDTH, SCREEN_WIDTH*4);
+                       if((dst = emu->screen_buffer(y)) != NULL) {
+                               memcpy(dst, screen+y*SCREEN_WIDTH, SCREEN_WIDTH*4);
+                       }
+                       if((dst = emu->screen_buffer(y + 1)) != NULL) {
+                               memcpy(dst, screen+y*SCREEN_WIDTH, SCREEN_WIDTH*4);
+                       }
                        y+=2;
                }
        }