mirror of https://github.com/encounter/SDL.git
VS2005 tweaks (thanks, Ozkan!).
Fixes Bugzilla #2895. His notes: The following trivial changes make SDL2 tree (mostly) compatible with Visual Studio 2005: * SDL_stdlib.c: Similar to VS2010 and newer, VS2005 also generates memcpy(), (it also generates memset(), see below), so propagate the #if condition to cover VS2005. * SDL_pixels.c (SDL_CalculateGammaRamp): VS2005 generates a memset() call for gamma==0 case, so replace the if loop with SDL_memset(). * SDL_windowsvideo.h: Include msctf.h only with VS2008 and newer, otherwise include SDL_msctf.h * SDL_windowskeyboard.c: Adjust the #ifdefs so that SDL_msctf.h inclusion is always recognized correctly.
This commit is contained in:
parent
8bac796791
commit
753f95c5dd
|
@ -279,7 +279,8 @@ __declspec(selectany) int _fltused = 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* The optimizer on Visual Studio 2010/2012 generates memcpy() calls */
|
/* The optimizer on Visual Studio 2010/2012 generates memcpy() calls */
|
||||||
#if _MSC_VER >= 1600 && defined(_WIN64) && !defined(_DEBUG)
|
/* Visual Studio 2005 does it too, and it also generates memset() calls */
|
||||||
|
#if (_MSC_VER == 1400 || _MSC_VER >= 1600) && defined(_WIN64) && !defined(_DEBUG)
|
||||||
#include <intrin.h>
|
#include <intrin.h>
|
||||||
|
|
||||||
#pragma function(memcpy)
|
#pragma function(memcpy)
|
||||||
|
|
|
@ -1101,9 +1101,7 @@ SDL_CalculateGammaRamp(float gamma, Uint16 * ramp)
|
||||||
|
|
||||||
/* 0.0 gamma is all black */
|
/* 0.0 gamma is all black */
|
||||||
if (gamma == 0.0f) {
|
if (gamma == 0.0f) {
|
||||||
for (i = 0; i < 256; ++i) {
|
SDL_memset(ramp, 0, 256 * sizeof(Uint16));
|
||||||
ramp[i] = 0;
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
} else if (gamma == 1.0f) {
|
} else if (gamma == 1.0f) {
|
||||||
/* 1.0 gamma is identity */
|
/* 1.0 gamma is identity */
|
||||||
|
|
|
@ -211,7 +211,12 @@ void IME_Present(SDL_VideoData *videodata)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef _SDL_msctf_h
|
||||||
|
#define USE_INIT_GUID
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
#define USE_INIT_GUID
|
||||||
|
#endif
|
||||||
|
#ifdef USE_INIT_GUID
|
||||||
#undef DEFINE_GUID
|
#undef DEFINE_GUID
|
||||||
#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) static const GUID n = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
|
#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) static const GUID n = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
|
||||||
DEFINE_GUID(IID_ITfInputProcessorProfileActivationSink, 0x71C6E74E,0x0F28,0x11D8,0xA8,0x2A,0x00,0x06,0x5B,0x84,0x43,0x5C);
|
DEFINE_GUID(IID_ITfInputProcessorProfileActivationSink, 0x71C6E74E,0x0F28,0x11D8,0xA8,0x2A,0x00,0x06,0x5B,0x84,0x43,0x5C);
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include "../SDL_sysvideo.h"
|
#include "../SDL_sysvideo.h"
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER) && (_MSC_VER >= 1500)
|
||||||
#include <msctf.h>
|
#include <msctf.h>
|
||||||
#else
|
#else
|
||||||
#include "SDL_msctf.h"
|
#include "SDL_msctf.h"
|
||||||
|
|
Loading…
Reference in New Issue