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 g,
ref byte b ref byte b
); );
[DllImport(nativeLibName, EntryPoint = "SDL_LoadBMP")] /* These are for SDL_LoadBMP, which is a macro in the SDL headers */
private static extern IntPtr INTERNAL_SDL_LoadBMP( [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)] [InAttribute()] [MarshalAsAttribute(UnmanagedType.LPStr)]
string file string file,
[InAttribute()] [MarshalAsAttribute(UnmanagedType.LPStr)]
string mode
); );
public static SDL_Surface SDL_LoadBMP(string file) public static SDL_Surface SDL_LoadBMP(string file)
{ {
SDL_Surface result; 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 = (SDL_Surface) Marshal.PtrToStructure(
result_ptr, result_ptr,
result.GetType() result.GetType()
@ -3273,7 +3282,7 @@ namespace SDL2
/* return value is an SDL_Cursor pointer */ /* return value is an SDL_Cursor pointer */
[DllImport(nativeLibName)] [DllImport(nativeLibName)]
public static extern IntPtr SDL_CreateColorCursor( public static extern IntPtr SDL_CreateColorCursor(
SDL_Surface surface, ref SDL_Surface surface,
int hot_x, int hot_x,
int hot_y int hot_y
); );