mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-05-09 03:41:10 +08:00
Merge branch 'master' of https://github.com/joncampbell123/dosbox-x into xbrz
# Resolved conflicts: # src/gui/sdlmain.cpp
This commit is contained in:
commit
06dd860abf
16
CHANGELOG
16
CHANGELOG
@ -1,8 +1,11 @@
|
||||
TODO add version
|
||||
- Improved shell:
|
||||
- INT 10h AH=10h now ignores AL=3 in PCjr mode.
|
||||
- Fixed keyboard handler bug in PCjr mode that caused some CPU
|
||||
register corruption and general crashiness in games.
|
||||
- Improved shell: (Aybe, Joncampbell123)
|
||||
- Ctrl+Left and Ctrl+Right permits word-navigation.
|
||||
- Added emulation of 'Ins' key behavior.
|
||||
- Num Lock stays on at startup and is synchronized with host
|
||||
- Num Lock stays on at startup and is synchronized with host (Aybe)
|
||||
when DOSBox-X window gains focus (Windows). (Aybe)
|
||||
- Added visual feedback to Hat/D-pad buttons in mapper. (Aybe)
|
||||
- Added documentation for 'dir' command sorting switches. (Aybe)
|
||||
@ -12,6 +15,15 @@ TODO add version
|
||||
- Axes can be remapped for devices with questionable layout.
|
||||
- User-settable deadzones for joystick bindings in mapper,
|
||||
mappings like WSAD keys to axes is less frustrating.
|
||||
- Improve mouse support:
|
||||
- Added pointer integration behavior for DOS applications.
|
||||
- Auto-lock is now disabled by default, this results in
|
||||
pointer integration becoming the default behavior.
|
||||
- Added feedback for auto-lock state, can be visual or auditive.
|
||||
- When the mouse is not locked, its position is exactly where
|
||||
the mouse is reported by the system. This results in a more
|
||||
consistent experience between DOSBox-X and host OS,
|
||||
e.g. High DPI mouse don't become suddenly slow in DOSBox-X.
|
||||
|
||||
0.82.7
|
||||
- Mac OS X builds now honor showmenu=false by leaving the
|
||||
|
@ -90,6 +90,7 @@ sst=false
|
||||
# output: What video system to use for output.
|
||||
# Possible values: surface, overlay, opengl, openglnb, openglhq, ddraw.
|
||||
# autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
|
||||
# synced: Mouse position reported will be exactly where user hand has moved to.
|
||||
# sensitivity: Mouse sensitivity.
|
||||
# waitonerror: Wait before closing the console if dosbox has an error.
|
||||
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
|
||||
@ -106,6 +107,7 @@ fullresolution=desktop
|
||||
windowresolution=original
|
||||
output=surface
|
||||
autolock=true
|
||||
synced=false
|
||||
sensitivity=100
|
||||
waitonerror=true
|
||||
priority=higher,normal
|
||||
@ -386,6 +388,8 @@ showmenu=true
|
||||
# try setting this option. Else, leave it turned off. Changes to other VGA CRTC registers will trigger
|
||||
# a DOSBox mode change as normal regardless of this setting.
|
||||
# enable pci bus: Enable PCI bus emulation
|
||||
# vga palette update on full load: If set, all three bytes of the palette entry must be loaded before taking the color,
|
||||
# which is fairly typical SVGA behavior. If not set, partial changes are allowed.
|
||||
# ignore odd-even mode in non-cga modes: Some demoscene productions use VGA Mode X but accidentally enable odd/even mode.
|
||||
# Setting this option can correct for that and render the demo properly.
|
||||
# This option forces VGA emulation to ignore odd/even mode except in text and CGA modes.
|
||||
@ -489,6 +493,7 @@ ignore vblank wraparound=false
|
||||
enable vga resize delay=false
|
||||
resize only on vga active display width increase=false
|
||||
enable pci bus=true
|
||||
vga palette update on full load=true
|
||||
ignore odd-even mode in non-cga modes=false
|
||||
|
||||
[render]
|
||||
|
@ -1,3 +1,3 @@
|
||||
/*auto-generated*/
|
||||
#define UPDATED_STR "Jun 23, 2018 8:13:20am"
|
||||
#define UPDATED_STR "Jun 27, 2018 11:42:01am"
|
||||
#define COPYRIGHT_END_YEAR "2018"
|
||||
|
@ -106,6 +106,14 @@ void GFX_OpenGLRedrawScreen(void);
|
||||
#include "keymap.h"
|
||||
#include "control.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# define MIN(a,b) ((a) < (b) ? (a) : (b))
|
||||
# define MAX(a,b) ((a) > (b) ? (a) : (b))
|
||||
#else
|
||||
# define MIN(a,b) std::min(a,b)
|
||||
# define MAX(a,b) std::max(a,b)
|
||||
#endif
|
||||
|
||||
#if C_XBRZ
|
||||
#include <xBRZ/xbrz.h>
|
||||
#include <xBRZ/xbrz_tools.h>
|
||||
@ -474,6 +482,13 @@ CDirect3D* d3d = NULL;
|
||||
# include <os2.h>
|
||||
#endif
|
||||
|
||||
enum AUTOLOCK_FEEDBACK
|
||||
{
|
||||
AUTOLOCK_FEEDBACK_NONE,
|
||||
AUTOLOCK_FEEDBACK_BEEP,
|
||||
AUTOLOCK_FEEDBACK_FLASH
|
||||
};
|
||||
|
||||
// do not specify any defaults inside, it is zeroed at start of main()
|
||||
struct SDL_Block {
|
||||
bool inited;
|
||||
@ -553,8 +568,8 @@ struct SDL_Block {
|
||||
SDL_cond *cond;
|
||||
struct {
|
||||
bool autolock;
|
||||
AUTOLOCK_FEEDBACK autolock_feedback;
|
||||
bool autoenable;
|
||||
bool synced;
|
||||
bool requestlock;
|
||||
bool locked;
|
||||
Bitu sensitivity;
|
||||
@ -2898,9 +2913,62 @@ void GFX_UpdateSDLCaptureState(void) {
|
||||
GFX_SetTitle(-1,-1,-1,false);
|
||||
}
|
||||
|
||||
#if WIN32
|
||||
void CaptureMouseNotifyWin32()
|
||||
{
|
||||
const auto lck = sdl.mouse.locked;
|
||||
switch (sdl.mouse.autolock_feedback)
|
||||
{
|
||||
case AUTOLOCK_FEEDBACK_NONE: break;
|
||||
case AUTOLOCK_FEEDBACK_BEEP:
|
||||
{
|
||||
const auto lo = 1000;
|
||||
const auto hi = 2000;
|
||||
const auto t1 = 50;
|
||||
const auto t2 = 25;
|
||||
const auto f1 = lck ? hi : lo;
|
||||
const auto f2 = lck ? lo : hi;
|
||||
const auto tt = lck ? t1 : t2;
|
||||
Beep(f1, tt);
|
||||
Beep(f2, tt);
|
||||
}
|
||||
break;
|
||||
case AUTOLOCK_FEEDBACK_FLASH:
|
||||
{
|
||||
const auto cnt = lck ? 4 : 2;
|
||||
const auto tim = lck ? 80 : 40;
|
||||
const auto wnd = GetHWND();
|
||||
if (wnd != nullptr)
|
||||
{
|
||||
FLASHWINFO fi;
|
||||
fi.cbSize = sizeof(FLASHWINFO);
|
||||
fi.hwnd = wnd;
|
||||
fi.dwFlags = FLASHW_CAPTION;
|
||||
fi.uCount = cnt;
|
||||
fi.dwTimeout = tim;
|
||||
FlashWindowEx(&fi);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void CaptureMouseNotify()
|
||||
{
|
||||
#if WIN32
|
||||
CaptureMouseNotifyWin32();
|
||||
#else
|
||||
// TODO
|
||||
#endif
|
||||
}
|
||||
|
||||
static void CaptureMouse(bool pressed) {
|
||||
if (!pressed)
|
||||
return;
|
||||
|
||||
CaptureMouseNotify();
|
||||
GFX_CaptureMouse();
|
||||
}
|
||||
|
||||
@ -4100,9 +4168,17 @@ static void GUI_StartUp() {
|
||||
sdl.desktop.full.height=width;
|
||||
}
|
||||
sdl.mouse.autoenable=section->Get_bool("autolock");
|
||||
sdl.mouse.synced=section->Get_bool("synced");
|
||||
if (!sdl.mouse.autoenable) SDL_ShowCursor(SDL_DISABLE);
|
||||
sdl.mouse.autolock=false;
|
||||
|
||||
const std::string feedback = section->Get_string("autolock_feedback");
|
||||
if (feedback == "none")
|
||||
sdl.mouse.autolock_feedback = AUTOLOCK_FEEDBACK_NONE;
|
||||
else if (feedback == "beep")
|
||||
sdl.mouse.autolock_feedback = AUTOLOCK_FEEDBACK_BEEP;
|
||||
else if (feedback == "flash")
|
||||
sdl.mouse.autolock_feedback = AUTOLOCK_FEEDBACK_FLASH;
|
||||
|
||||
sdl.mouse.sensitivity=(unsigned int)section->Get_int("sensitivity");
|
||||
std::string output=section->Get_string("output");
|
||||
|
||||
@ -4624,35 +4700,38 @@ static void HandleMouseMotion(SDL_MouseMotionEvent * motion) {
|
||||
}
|
||||
}
|
||||
#endif
|
||||
user_cursor_x = motion->x - sdl.clip.x;
|
||||
user_cursor_y = motion->y - sdl.clip.y;
|
||||
user_cursor_x = motion->x - sdl.clip.x;
|
||||
user_cursor_y = motion->y - sdl.clip.y;
|
||||
user_cursor_locked = sdl.mouse.locked;
|
||||
user_cursor_synced = sdl.mouse.synced;
|
||||
user_cursor_sw = sdl.clip.w;
|
||||
user_cursor_sh = sdl.clip.h;
|
||||
user_cursor_synced = !user_cursor_locked;
|
||||
user_cursor_sw = sdl.clip.w;
|
||||
user_cursor_sh = sdl.clip.h;
|
||||
|
||||
if (sdl.mouse.locked || !sdl.mouse.autoenable)
|
||||
Mouse_CursorMoved((float)motion->xrel*sdl.mouse.sensitivity/100.0f,
|
||||
(float)motion->yrel*sdl.mouse.sensitivity/100.0f,
|
||||
(float)(motion->x-sdl.clip.x)/(sdl.clip.w-1)*sdl.mouse.sensitivity/100.0f,
|
||||
(float)(motion->y-sdl.clip.y)/(sdl.clip.h-1)*sdl.mouse.sensitivity/100.0f,
|
||||
sdl.mouse.locked);
|
||||
else if (mouse_notify_mode != 0) { /* for mouse integration driver */
|
||||
Mouse_CursorMoved(0,0,0,0,sdl.mouse.locked);
|
||||
if (motion->x >= sdl.clip.x && motion->y >= sdl.clip.y &&
|
||||
motion->x < (sdl.clip.x+sdl.clip.w) && motion->y < (sdl.clip.y+sdl.clip.h))
|
||||
SDL_ShowCursor(SDL_DISABLE); /* TODO: If guest has not read mouse cursor position within 250ms show cursor again */
|
||||
else if (Mouse_GetButtonState() != 0)
|
||||
SDL_ShowCursor(SDL_DISABLE); /* TODO: If guest has not read mouse cursor position within 250ms show cursor again */
|
||||
else
|
||||
SDL_ShowCursor(SDL_ENABLE);
|
||||
}
|
||||
else {
|
||||
SDL_ShowCursor(SDL_ENABLE);
|
||||
}
|
||||
auto xrel = static_cast<float>(motion->xrel) * sdl.mouse.sensitivity / 100.0f;
|
||||
auto yrel = static_cast<float>(motion->yrel) * sdl.mouse.sensitivity / 100.0f;
|
||||
auto x = static_cast<float>(motion->x - sdl.clip.x) / (sdl.clip.w - 1) * sdl.mouse.sensitivity / 100.0f;
|
||||
auto y = static_cast<float>(motion->y - sdl.clip.y) / (sdl.clip.h - 1) * sdl.mouse.sensitivity / 100.0f;
|
||||
auto emu = sdl.mouse.locked;
|
||||
|
||||
if (sdl.mouse.synced)
|
||||
SDL_ShowCursor(SDL_ENABLE); // TODO remove
|
||||
if (mouse_notify_mode != 0)
|
||||
{
|
||||
/* for mouse integration driver */
|
||||
xrel = yrel = x = y = 0.0f;
|
||||
emu = sdl.mouse.locked;
|
||||
const auto isdown = Mouse_GetButtonState() != 0;
|
||||
const auto inside =
|
||||
motion->x >= sdl.clip.x && motion->x < sdl.clip.x + sdl.clip.w &&
|
||||
motion->y >= sdl.clip.y && motion->y < sdl.clip.y + sdl.clip.h;
|
||||
SDL_ShowCursor(isdown || inside ? SDL_DISABLE : SDL_ENABLE);
|
||||
/* TODO: If guest has not read mouse cursor position within 250ms show cursor again */
|
||||
}
|
||||
bool MOUSE_IsHidden();
|
||||
if (!user_cursor_locked)
|
||||
{
|
||||
/* Show only when DOS app is not using mouse */
|
||||
SDL_ShowCursor(MOUSE_IsHidden() ? SDL_ENABLE : SDL_DISABLE);
|
||||
}
|
||||
Mouse_CursorMoved(xrel, yrel, x, y, emu);
|
||||
}
|
||||
|
||||
#if DOSBOXMENU_TYPE == DOSBOXMENU_SDLDRAW /* SDL drawn menus */
|
||||
@ -5185,6 +5264,7 @@ static void HandleMouseButton(SDL_MouseButtonEvent * button) {
|
||||
case SDL_PRESSED:
|
||||
if (inMenu) return;
|
||||
if (sdl.mouse.requestlock && !sdl.mouse.locked && mouse_notify_mode == 0) {
|
||||
CaptureMouseNotify();
|
||||
GFX_CaptureMouse();
|
||||
// Dont pass klick to mouse handler
|
||||
break;
|
||||
@ -5834,6 +5914,89 @@ static void HandleTouchscreenFinger(SDL_TouchFingerEvent * finger) {
|
||||
void MSG_WM_COMMAND_handle(SDL_SysWMmsg &Message);
|
||||
#endif
|
||||
|
||||
struct mouse_pos
|
||||
{
|
||||
long x = 0;
|
||||
long y = 0;
|
||||
} mouse_pos;
|
||||
|
||||
bool mouse_inside = false;
|
||||
|
||||
void GFX_EventsMouseProcess(const long x, const long y, const long rx, const long ry)
|
||||
{
|
||||
const auto x1 = sdl.clip.x;
|
||||
const auto x2 = x1 + sdl.clip.w - 1;
|
||||
const auto y1 = sdl.clip.y;
|
||||
const auto y2 = y1 + sdl.clip.h - 1;
|
||||
const auto in = x >= x1 && x <= x2 && y >= y1 && y <= y2;
|
||||
|
||||
if (mouse_inside && !in)
|
||||
{
|
||||
const auto x3 = max((int)x1, min((int)x2, (int)x));
|
||||
const auto y3 = max((int)y1, min((int)y2, (int)y));
|
||||
SDL_Event evt;
|
||||
evt.type = SDL_MOUSEMOTION;
|
||||
evt.motion.state = 0;
|
||||
evt.motion.which = 0;
|
||||
evt.motion.x = x3;
|
||||
evt.motion.y = y3;
|
||||
evt.motion.xrel = rx;
|
||||
evt.motion.yrel = ry;
|
||||
SDL_PushEvent(&evt);
|
||||
}
|
||||
|
||||
mouse_inside = in;
|
||||
}
|
||||
|
||||
#if defined(WIN32)
|
||||
void GFX_EventsMouseWin32()
|
||||
{
|
||||
/* Compute relative mouse movement */
|
||||
|
||||
POINT point;
|
||||
SDL_SysWMinfo wmi;
|
||||
|
||||
SDL_VERSION(&wmi.version);
|
||||
if (!SDL_GetWMInfo(&wmi))
|
||||
return;
|
||||
|
||||
if (!GetCursorPos(&point))
|
||||
return;
|
||||
|
||||
if (!ScreenToClient(wmi.child_window, &point))
|
||||
return;
|
||||
|
||||
const auto x = point.x;
|
||||
const auto y = point.y;
|
||||
const auto rx = x - mouse_pos.x;
|
||||
const auto ry = y - mouse_pos.y;
|
||||
|
||||
mouse_pos.x = x;
|
||||
mouse_pos.y = y;
|
||||
|
||||
/* Let the method do the heavy uplifting */
|
||||
GFX_EventsMouseProcess(x, y, rx, ry);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* \brief Processes mouse movements when outside the window.
|
||||
*
|
||||
* This method will send an extra mouse event to the SDL pump
|
||||
* when some relative movement has occurred.
|
||||
*/
|
||||
void GFX_EventsMouse()
|
||||
{
|
||||
if (sdl.desktop.fullscreen || sdl.mouse.locked)
|
||||
return;
|
||||
|
||||
#if WIN32
|
||||
GFX_EventsMouseWin32();
|
||||
#else
|
||||
// TODO
|
||||
#endif
|
||||
}
|
||||
|
||||
void GFX_Events() {
|
||||
CheckMapperKeyboardLayout();
|
||||
#if defined(C_SDL2) /* SDL 2.x---------------------------------- */
|
||||
@ -5996,6 +6159,9 @@ void GFX_Events() {
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
GFX_EventsMouse();
|
||||
|
||||
while (SDL_PollEvent(&event)) {
|
||||
switch (event.type) {
|
||||
#ifdef __WIN32__
|
||||
@ -6056,7 +6222,11 @@ void GFX_Events() {
|
||||
CPU_Disable_SkipAutoAdjust();
|
||||
BIOS_SynchronizeNumLock();
|
||||
} else {
|
||||
if (sdl.mouse.locked) GFX_CaptureMouse();
|
||||
if (sdl.mouse.locked)
|
||||
{
|
||||
CaptureMouseNotify();
|
||||
GFX_CaptureMouse();
|
||||
}
|
||||
|
||||
#if defined(WIN32)
|
||||
if (sdl.desktop.fullscreen)
|
||||
@ -6504,11 +6674,13 @@ void SDL_SetupConfigSection() {
|
||||
Pstring->Set_help("What video system to use for output.");
|
||||
Pstring->Set_values(outputs);
|
||||
|
||||
Pbool = sdl_sec->Add_bool("autolock",Property::Changeable::Always,true);
|
||||
Pbool = sdl_sec->Add_bool("autolock",Property::Changeable::Always, false);
|
||||
Pbool->Set_help("Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)");
|
||||
|
||||
Pbool = sdl_sec->Add_bool("synced",Property::Changeable::Always,false);
|
||||
Pbool->Set_help("Mouse position reported will be exactly where user hand has moved to.");
|
||||
const char* feeds[] = { "none", "beep", "flash", nullptr};
|
||||
Pstring = sdl_sec->Add_string("autolock_feedback", Property::Changeable::Always, feeds[1]);
|
||||
Pstring->Set_help("Autolock status feedback type, i.e. visual, auditive, none.");
|
||||
Pstring->Set_values(feeds);
|
||||
|
||||
Pint = sdl_sec->Add_int("sensitivity",Property::Changeable::Always,100);
|
||||
Pint->SetMinMax(1,1000);
|
||||
|
@ -131,6 +131,7 @@ Bitu INT10_Handler(void) {
|
||||
case 0x10: /* Palette functions */
|
||||
if (!IS_EGAVGA_ARCH && (reg_al>0x02)) break;
|
||||
else if (!IS_VGA_ARCH && (reg_al>0x03)) break;
|
||||
else if (machine==MCH_PCJR && (reg_al>0x02)) break; /* "Looking at the PCjr tech ref page A-61, ... the BIOS listing stops at subfunction 2." */
|
||||
switch (reg_al) {
|
||||
case 0x00: /* SET SINGLE PALETTE REGISTER */
|
||||
INT10_SetSinglePaletteRegister(reg_bl,reg_bh);
|
||||
|
@ -1389,3 +1389,7 @@ void MOUSE_Init() {
|
||||
AddVMEventFunction(VM_EVENT_RESET,AddVMEventFunctionFuncPair(MOUSE_OnReset));
|
||||
}
|
||||
|
||||
bool MOUSE_IsHidden()
|
||||
{
|
||||
return static_cast<bool>(mouse.hidden);
|
||||
}
|
||||
|
@ -120,57 +120,57 @@
|
||||
<OutDir>$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)..\obj\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(IncludePath);%DXSDK_DIR%\Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);%DXSDK_DIR%\Lib;</LibraryPath>
|
||||
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib;</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug SDL2|Win32'">
|
||||
<OutDir>$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)..\obj\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(IncludePath);%DXSDK_DIR%\Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);%DXSDK_DIR%\Lib;$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</LibraryPath>
|
||||
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib;$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)..\obj\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(IncludePath);%DXSDK_DIR%\Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);%DXSDK_DIR%\Lib;</LibraryPath>
|
||||
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib;</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug SDL2|x64'">
|
||||
<OutDir>$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)..\obj\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(IncludePath);%DXSDK_DIR%\Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);%DXSDK_DIR%\Lib;$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</LibraryPath>
|
||||
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib;$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)..\obj\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(IncludePath);%DXSDK_DIR%\Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);%DXSDK_DIR%\Lib;</LibraryPath>
|
||||
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib;</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release SDL2|Win32'">
|
||||
<OutDir>$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)..\obj\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(IncludePath);%DXSDK_DIR%\Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);%DXSDK_DIR%\Lib;$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</LibraryPath>
|
||||
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib;$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)..\obj\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(IncludePath);%DXSDK_DIR%\Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);%DXSDK_DIR%\Lib;</LibraryPath>
|
||||
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib;</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release SDL2|x64'">
|
||||
<OutDir>$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(SolutionDir)..\obj\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(IncludePath);%DXSDK_DIR%\Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);%DXSDK_DIR%\Lib;$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</LibraryPath>
|
||||
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include;</IncludePath>
|
||||
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib;$(SolutionDir)..\bin\$(Platform)\$(Configuration)\</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -1126,4 +1126,4 @@ copy "$(SolutionDir)\..\CHANGELOG" "$(OutputPath)\changelog.txt"</Command>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
Loading…
x
Reference in New Issue
Block a user