Fix SDL_CreateColorCursor and SDL_LoadBMP

This commit is contained in:
David Gow 2013-04-07 19:39:23 +08:00
parent e22aa09e4d
commit 129410c745

View file

@ -1964,16 +1964,25 @@ namespace SDL2
ref byte g,
ref byte b
);
[DllImport(nativeLibName, EntryPoint = "SDL_LoadBMP")]
private static extern IntPtr INTERNAL_SDL_LoadBMP(
/* These are for SDL_LoadBMP, which is a macro in the SDL headers */
[DllImport(nativeLibName, EntryPoint = "SDL_LoadBMP_RW")]
private static extern IntPtr INTERNAL_SDL_LoadBMP_RW(
IntPtr src,
int freesrc
);
[DllImport(nativeLibName, EntryPoint = "SDL_RWFromFile")]
private static extern IntPtr INTERNAL_SDL_RWFromFile(
[InAttribute()] [MarshalAsAttribute(UnmanagedType.LPStr)]
string file
string file,
[InAttribute()] [MarshalAsAttribute(UnmanagedType.LPStr)]
string mode
);
public static SDL_Surface SDL_LoadBMP(string file)
{
SDL_Surface result;
IntPtr result_ptr = INTERNAL_SDL_LoadBMP(file);
IntPtr rwops = INTERNAL_SDL_RWFromFile(file, "rb");
IntPtr result_ptr = INTERNAL_SDL_LoadBMP_RW(rwops, 1);
result = (SDL_Surface) Marshal.PtrToStructure(
result_ptr,
result.GetType()
@ -3273,7 +3282,7 @@ namespace SDL2
/* return value is an SDL_Cursor pointer */
[DllImport(nativeLibName)]
public static extern IntPtr SDL_CreateColorCursor(
SDL_Surface surface,
ref SDL_Surface surface,
int hot_x,
int hot_y
);