win_d2d: moved to dev branch and made optional + fixes
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* Application resource script for Windows.
|
* Application resource script for Windows.
|
||||||
*
|
*
|
||||||
* Version: @(#)86Box.rc 1.0.38 2018/07/19
|
* Version: @(#)86Box.rc 1.0.39 2018/07/28
|
||||||
*
|
*
|
||||||
* Authors: Miran Grca, <mgrca8@gmail.com>
|
* Authors: Miran Grca, <mgrca8@gmail.com>
|
||||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
@@ -65,7 +65,9 @@ BEGIN
|
|||||||
POPUP "Re&nderer"
|
POPUP "Re&nderer"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&DirectDraw", IDM_VID_DDRAW
|
MENUITEM "&DirectDraw", IDM_VID_DDRAW
|
||||||
|
#ifdef USE_D2D
|
||||||
MENUITEM "Direct&2D 1.0", IDM_VID_D2D
|
MENUITEM "Direct&2D 1.0", IDM_VID_D2D
|
||||||
|
#endif
|
||||||
MENUITEM "Direct&3D 9", IDM_VID_D3D
|
MENUITEM "Direct&3D 9", IDM_VID_D3D
|
||||||
MENUITEM "&SDL", IDM_VID_SDL
|
MENUITEM "&SDL", IDM_VID_SDL
|
||||||
#ifdef USE_VNC
|
#ifdef USE_VNC
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
#
|
#
|
||||||
# Makefile for Win32 (MinGW32) environment.
|
# Makefile for Win32 (MinGW32) environment.
|
||||||
#
|
#
|
||||||
# Version: @(#)Makefile.mingw 1.0.120 2018/07/19
|
# Version: @(#)Makefile.mingw 1.0.121 2018/07/28
|
||||||
#
|
#
|
||||||
# Authors: Miran Grca, <mgrca8@gmail.com>
|
# Authors: Miran Grca, <mgrca8@gmail.com>
|
||||||
# Fred N. van Kempen, <decwiz@yahoo.com>
|
# Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
@@ -41,6 +41,9 @@ ifeq ($(DEV_BUILD), y)
|
|||||||
ifndef CRASHDUMP
|
ifndef CRASHDUMP
|
||||||
CRASHDUMP := y
|
CRASHDUMP := y
|
||||||
endif
|
endif
|
||||||
|
ifndef D2D
|
||||||
|
D2D := y
|
||||||
|
endif
|
||||||
ifndef I686
|
ifndef I686
|
||||||
I686 := y
|
I686 := y
|
||||||
endif
|
endif
|
||||||
@@ -81,6 +84,9 @@ else
|
|||||||
ifndef CRASHDUMP
|
ifndef CRASHDUMP
|
||||||
CRASHDUMP := n
|
CRASHDUMP := n
|
||||||
endif
|
endif
|
||||||
|
ifndef D2D
|
||||||
|
D2D := n
|
||||||
|
endif
|
||||||
ifndef I686
|
ifndef I686
|
||||||
I686 := n
|
I686 := n
|
||||||
endif
|
endif
|
||||||
@@ -315,6 +321,12 @@ MUNTOBJ := midi_mt32.o \
|
|||||||
Tables.o TVA.o TVF.o TVP.o sha1.o c_interface.o
|
Tables.o TVA.o TVF.o TVP.o sha1.o c_interface.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(D2D), y)
|
||||||
|
OPTS += -DUSE_D2D
|
||||||
|
RFLAGS += -DUSE_D2D
|
||||||
|
D2DLIB := -ld2d1
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(VNC), y)
|
ifeq ($(VNC), y)
|
||||||
OPTS += -DUSE_VNC
|
OPTS += -DUSE_VNC
|
||||||
RFLAGS += -DUSE_VNC
|
RFLAGS += -DUSE_VNC
|
||||||
@@ -560,8 +572,11 @@ endif
|
|||||||
|
|
||||||
LIBS := -mwindows \
|
LIBS := -mwindows \
|
||||||
-lopenal.dll \
|
-lopenal.dll \
|
||||||
-lddraw -ldinput8 -ldxguid -ld3d9 -ld3dx9 -ld2d1\
|
-lddraw -ldinput8 -ldxguid -ld3d9 -ld3dx9 \
|
||||||
-lcomctl32 -lwinmm
|
-lcomctl32 -lwinmm
|
||||||
|
ifeq ($(D2D), y)
|
||||||
|
LIBS += $(D2DLIB)
|
||||||
|
endif
|
||||||
ifeq ($(VNC), y)
|
ifeq ($(VNC), y)
|
||||||
LIBS += $(VNCLIB) -lws2_32
|
LIBS += $(VNCLIB) -lws2_32
|
||||||
endif
|
endif
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* Platform main support module for Windows.
|
* Platform main support module for Windows.
|
||||||
*
|
*
|
||||||
* Version: @(#)win.c 1.0.51 2018/07/19
|
* Version: @(#)win.c 1.0.52 2018/07/28
|
||||||
*
|
*
|
||||||
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
|
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
|
||||||
* Miran Grca, <mgrca8@gmail.com>
|
* Miran Grca, <mgrca8@gmail.com>
|
||||||
@@ -608,9 +608,11 @@ plat_vidapi_name(int api)
|
|||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifdef USE_D2D
|
||||||
case 1:
|
case 1:
|
||||||
name = "d2d";
|
name = "d2d";
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
name = "d3d";
|
name = "d3d";
|
||||||
@@ -624,7 +626,6 @@ plat_vidapi_name(int api)
|
|||||||
case 4:
|
case 4:
|
||||||
name = "vnc";
|
name = "vnc";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -754,9 +755,11 @@ take_screenshot(void)
|
|||||||
ddraw_take_screenshot(path);
|
ddraw_take_screenshot(path);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifdef USE_D2D
|
||||||
case 1: /* d2d */
|
case 1: /* d2d */
|
||||||
d2d_take_screenshot(path);
|
d2d_take_screenshot(path);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case 2: /* d3d9 */
|
case 2: /* d3d9 */
|
||||||
d3d_take_screenshot(path);
|
d3d_take_screenshot(path);
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* Rendering module for Microsoft Direct2D.
|
* Rendering module for Microsoft Direct2D.
|
||||||
*
|
*
|
||||||
* Version: @(#)win_d2d.cpp 1.0.0 2018/07/19
|
* Version: @(#)win_d2d.cpp 1.0.1 2018/07/28
|
||||||
*
|
*
|
||||||
* Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
* Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||||
*
|
*
|
||||||
@@ -21,8 +21,10 @@
|
|||||||
#define UNICODE
|
#define UNICODE
|
||||||
#define BITMAP WINDOWS_BITMAP
|
#define BITMAP WINDOWS_BITMAP
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#ifdef USE_D2D
|
||||||
#include <d2d1.h>
|
#include <d2d1.h>
|
||||||
#include <d2d1helper.h>
|
#include <d2d1helper.h>
|
||||||
|
#endif
|
||||||
#undef BITMAP
|
#undef BITMAP
|
||||||
|
|
||||||
#define PNG_DEBUG 0
|
#define PNG_DEBUG 0
|
||||||
@@ -38,12 +40,14 @@
|
|||||||
#include "win_d2d.h"
|
#include "win_d2d.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef USE_D2D
|
||||||
static HWND d2d_hwnd, old_hwndMain;
|
static HWND d2d_hwnd, old_hwndMain;
|
||||||
static ID2D1Factory *d2d_factory;
|
static ID2D1Factory *d2d_factory;
|
||||||
static ID2D1HwndRenderTarget *d2d_hwndRT;
|
static ID2D1HwndRenderTarget *d2d_hwndRT;
|
||||||
static ID2D1BitmapRenderTarget *d2d_btmpRT;
|
static ID2D1BitmapRenderTarget *d2d_btmpRT;
|
||||||
static ID2D1Bitmap *d2d_bitmap;
|
static ID2D1Bitmap *d2d_bitmap;
|
||||||
static int d2d_width, d2d_height, d2d_screen_width, d2d_screen_height, d2d_fs;
|
static int d2d_width, d2d_height, d2d_screen_width, d2d_screen_height, d2d_fs;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef ENABLE_D2D_LOG
|
#ifdef ENABLE_D2D_LOG
|
||||||
@@ -66,6 +70,7 @@ d2d_log(const char *fmt, ...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef USE_D2D
|
||||||
static void
|
static void
|
||||||
d2d_stretch(float *w, float *h, float *x, float *y)
|
d2d_stretch(float *w, float *h, float *x, float *y)
|
||||||
{
|
{
|
||||||
@@ -161,8 +166,10 @@ d2d_stretch(float *w, float *h, float *x, float *y)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef USE_D2D
|
||||||
static void
|
static void
|
||||||
d2d_blit(int x, int y, int y1, int y2, int w, int h)
|
d2d_blit(int x, int y, int y1, int y2, int w, int h)
|
||||||
{
|
{
|
||||||
@@ -177,7 +184,7 @@ d2d_blit(int x, int y, int y1, int y2, int w, int h)
|
|||||||
|
|
||||||
float fs_x, fs_y;
|
float fs_x, fs_y;
|
||||||
float fs_w = w;
|
float fs_w = w;
|
||||||
float fs_h = h;
|
float fs_h = h;
|
||||||
|
|
||||||
d2d_log("Direct2D: d2d_blit(x=%d, y=%d, y1=%d, y2=%d, w=%d, h=%d)\n", x, y, y1, y2, w, h);
|
d2d_log("Direct2D: d2d_blit(x=%d, y=%d, y1=%d, y2=%d, w=%d, h=%d)\n", x, y, y1, y2, w, h);
|
||||||
|
|
||||||
@@ -310,6 +317,7 @@ d2d_blit(int x, int y, int y1, int y2, int w, int h)
|
|||||||
free(srcdata);
|
free(srcdata);
|
||||||
srcdata = NULL;
|
srcdata = NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -317,6 +325,7 @@ d2d_close(void)
|
|||||||
{
|
{
|
||||||
d2d_log("Direct2D: d2d_close()\n");
|
d2d_log("Direct2D: d2d_close()\n");
|
||||||
|
|
||||||
|
#ifdef USE_D2D
|
||||||
if (d2d_bitmap)
|
if (d2d_bitmap)
|
||||||
{
|
{
|
||||||
d2d_bitmap->Release();
|
d2d_bitmap->Release();
|
||||||
@@ -349,9 +358,11 @@ d2d_close(void)
|
|||||||
d2d_hwnd = NULL;
|
d2d_hwnd = NULL;
|
||||||
old_hwndMain = NULL;
|
old_hwndMain = NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef USE_D2D
|
||||||
static int
|
static int
|
||||||
d2d_init_common(int fs)
|
d2d_init_common(int fs)
|
||||||
{
|
{
|
||||||
@@ -450,13 +461,19 @@ d2d_init_common(int fs)
|
|||||||
|
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
d2d_init(HWND h)
|
d2d_init(HWND h)
|
||||||
{
|
{
|
||||||
d2d_log("Direct2D: d2d_init(h=0x%08lx)\n", h);
|
d2d_log("Direct2D: d2d_init(h=0x%08lx)\n", h);
|
||||||
|
|
||||||
|
#ifdef USE_D2D
|
||||||
return d2d_init_common(0);
|
return d2d_init_common(0);
|
||||||
|
#else
|
||||||
|
return(0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -464,7 +481,12 @@ int
|
|||||||
d2d_init_fs(HWND h)
|
d2d_init_fs(HWND h)
|
||||||
{
|
{
|
||||||
d2d_log("Direct2D: d2d_init_fs(h=0x%08lx)\n", h);
|
d2d_log("Direct2D: d2d_init_fs(h=0x%08lx)\n", h);
|
||||||
|
|
||||||
|
#ifdef USE_D2D
|
||||||
return d2d_init_common(1);
|
return d2d_init_common(1);
|
||||||
|
#else
|
||||||
|
return(0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* user Interface module for WinAPI on Windows.
|
* user Interface module for WinAPI on Windows.
|
||||||
*
|
*
|
||||||
* Version: @(#)win_ui.c 1.0.29 2018/07/19
|
* Version: @(#)win_ui.c 1.0.30 2018/07/28
|
||||||
*
|
*
|
||||||
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
|
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
|
||||||
* Miran Grca, <mgrca8@gmail.com>
|
* Miran Grca, <mgrca8@gmail.com>
|
||||||
@@ -113,6 +113,12 @@ ResetAllMenus(void)
|
|||||||
EnableMenuItem(menuMain, IDM_CONFIG_SAVE, MF_DISABLED);
|
EnableMenuItem(menuMain, IDM_CONFIG_SAVE, MF_DISABLED);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_D2D
|
||||||
|
/* Disable Direct2D menu option on NT5 */
|
||||||
|
if(LOBYTE(LOWORD(GetVersion())) < 6)
|
||||||
|
EnableMenuItem(menuMain, IDM_VID_D2D, MF_GRAYED);
|
||||||
|
#endif
|
||||||
|
|
||||||
CheckMenuItem(menuMain, IDM_ACTION_RCTRL_IS_LALT, MF_UNCHECKED);
|
CheckMenuItem(menuMain, IDM_ACTION_RCTRL_IS_LALT, MF_UNCHECKED);
|
||||||
|
|
||||||
CheckMenuItem(menuMain, IDM_UPDATE_ICONS, MF_UNCHECKED);
|
CheckMenuItem(menuMain, IDM_UPDATE_ICONS, MF_UNCHECKED);
|
||||||
@@ -147,10 +153,13 @@ ResetAllMenus(void)
|
|||||||
|
|
||||||
CheckMenuItem(menuMain, IDM_VID_RESIZE, MF_UNCHECKED);
|
CheckMenuItem(menuMain, IDM_VID_RESIZE, MF_UNCHECKED);
|
||||||
CheckMenuItem(menuMain, IDM_VID_DDRAW+0, MF_UNCHECKED);
|
CheckMenuItem(menuMain, IDM_VID_DDRAW+0, MF_UNCHECKED);
|
||||||
|
#ifdef USE_D2D
|
||||||
CheckMenuItem(menuMain, IDM_VID_DDRAW+1, MF_UNCHECKED);
|
CheckMenuItem(menuMain, IDM_VID_DDRAW+1, MF_UNCHECKED);
|
||||||
|
#endif
|
||||||
CheckMenuItem(menuMain, IDM_VID_DDRAW+2, MF_UNCHECKED);
|
CheckMenuItem(menuMain, IDM_VID_DDRAW+2, MF_UNCHECKED);
|
||||||
#ifdef USE_VNC
|
|
||||||
CheckMenuItem(menuMain, IDM_VID_DDRAW+3, MF_UNCHECKED);
|
CheckMenuItem(menuMain, IDM_VID_DDRAW+3, MF_UNCHECKED);
|
||||||
|
#ifdef USE_VNC
|
||||||
|
CheckMenuItem(menuMain, IDM_VID_DDRAW+4, MF_UNCHECKED);
|
||||||
#endif
|
#endif
|
||||||
CheckMenuItem(menuMain, IDM_VID_FS_FULL+0, MF_UNCHECKED);
|
CheckMenuItem(menuMain, IDM_VID_FS_FULL+0, MF_UNCHECKED);
|
||||||
CheckMenuItem(menuMain, IDM_VID_FS_FULL+1, MF_UNCHECKED);
|
CheckMenuItem(menuMain, IDM_VID_FS_FULL+1, MF_UNCHECKED);
|
||||||
@@ -378,7 +387,9 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case IDM_VID_DDRAW:
|
case IDM_VID_DDRAW:
|
||||||
|
#ifdef USE_D2D
|
||||||
case IDM_VID_D2D:
|
case IDM_VID_D2D:
|
||||||
|
#endif
|
||||||
case IDM_VID_D3D:
|
case IDM_VID_D3D:
|
||||||
case IDM_VID_SDL:
|
case IDM_VID_SDL:
|
||||||
#ifdef USE_VNC
|
#ifdef USE_VNC
|
||||||
|
Reference in New Issue
Block a user