mirror of
https://github.com/Ryujinx/SDL2-CS.git
synced 2025-01-03 14:05:42 +00:00
SDL_render first draft done.
This commit is contained in:
parent
97b982d3f5
commit
de5f266324
2
README
2
README
|
@ -27,5 +27,7 @@ Roadmap
|
||||||
- Implement the SDL2 libraries.
|
- Implement the SDL2 libraries.
|
||||||
- For SDL2 itself, organize it according to this API reference page:
|
- For SDL2 itself, organize it according to this API reference page:
|
||||||
http://wiki.libsdl.org/moin.fcg/APIByCategory
|
http://wiki.libsdl.org/moin.fcg/APIByCategory
|
||||||
|
- Document the SDL2 methods.
|
||||||
|
- I have some parameter info, but having full SDL2 docs would be great.
|
||||||
- Add OpenGL and OpenAL support.
|
- Add OpenGL and OpenAL support.
|
||||||
- Just rip this off of OpenTK for now. Too much work, not enough time...
|
- Just rip this off of OpenTK for now. Too much work, not enough time...
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
<ConsolePause>false</ConsolePause>
|
<ConsolePause>false</ConsolePause>
|
||||||
|
<additionalargs>/unsafe</additionalargs>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||||
<DebugType>none</DebugType>
|
<DebugType>none</DebugType>
|
||||||
|
@ -29,6 +30,7 @@
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
<ConsolePause>false</ConsolePause>
|
<ConsolePause>false</ConsolePause>
|
||||||
|
<additionalargs>/unsafe</additionalargs>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
353
src/SDL2.cs
353
src/SDL2.cs
|
@ -355,8 +355,8 @@ namespace SDL2
|
||||||
{
|
{
|
||||||
SDL_BLENDMODE_NONE = 0x00000000,
|
SDL_BLENDMODE_NONE = 0x00000000,
|
||||||
SDL_BLENDMODE_BLEND = 0x00000001,
|
SDL_BLENDMODE_BLEND = 0x00000001,
|
||||||
SDL_BLENDMODE_ADD = 0x00000002,
|
SDL_BLENDMODE_ADD = 0x00000002,
|
||||||
SDL_BLENDMODE_MOD = 0x00000004
|
SDL_BLENDMODE_MOD = 0x00000004
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum SDL_GLattr
|
public enum SDL_GLattr
|
||||||
|
@ -831,10 +831,348 @@ namespace SDL2
|
||||||
|
|
||||||
#region SDL_render.h
|
#region SDL_render.h
|
||||||
|
|
||||||
/* TODO: SDL_render.h:
|
public enum SDL_RendererFlags
|
||||||
* http://wiki.libsdl.org/moin.fcg/CategoryRender
|
{
|
||||||
* http://hg.libsdl.org/SDL/file/default/include/SDL_render.h
|
SDL_RENDERER_SOFTWARE = 0x00000001,
|
||||||
*/
|
SDL_RENDERER_ACCELERATED = 0x00000002,
|
||||||
|
SDL_RENDERER_PRESENTVSYNC = 0x00000004,
|
||||||
|
SDL_RENDERER_TARGETTEXTURE = 0x00000008
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum SDL_RendererFlip
|
||||||
|
{
|
||||||
|
SDL_FLIP_NONE = 0x00000000,
|
||||||
|
SDL_FLIP_HORIZONTAL = 0x00000001,
|
||||||
|
SDL_FLIP_VERTICAL = 0x00000002
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum SDL_TextureAccess
|
||||||
|
{
|
||||||
|
SDL_TEXTUREACCES_STATIC,
|
||||||
|
SDL_TEXTUREACCESS_STREAMING,
|
||||||
|
SDL_TEXTUREACCESS_TARGET
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum SDL_TextureModulate
|
||||||
|
{
|
||||||
|
SDL_TEXTUREMODULATE_NONE = 0x00000000,
|
||||||
|
SDL_TEXTUREMODULATE_HORIZONTAL = 0x00000001,
|
||||||
|
SDL_TEXTUREMODULATE_VERTICAL = 0x00000002
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public unsafe struct SDL_RendererInfo
|
||||||
|
{
|
||||||
|
public string name; // const char*
|
||||||
|
public uint flags;
|
||||||
|
public uint num_texture_formats;
|
||||||
|
public fixed uint texture_formats[16];
|
||||||
|
public int max_texture_width;
|
||||||
|
public int max_texture_height;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IntPtr refers to an SDL_Renderer*, window to an SDL_Window* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern IntPtr SDL_CreateRenderer(
|
||||||
|
IntPtr window,
|
||||||
|
int index,
|
||||||
|
uint flags
|
||||||
|
);
|
||||||
|
|
||||||
|
/* IntPtr refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern IntPtr SDL_CreateRenderer(
|
||||||
|
ref SDL_Surface surface
|
||||||
|
);
|
||||||
|
|
||||||
|
/* IntPtr refers to an SDL_Texture*, renderer to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern IntPtr SDL_CreateTexture(
|
||||||
|
IntPtr renderer,
|
||||||
|
uint format,
|
||||||
|
int access,
|
||||||
|
int w,
|
||||||
|
int h
|
||||||
|
);
|
||||||
|
|
||||||
|
/* IntPtr refers to an SDL_Texture*, renderer to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern IntPtr SDL_CreateTextureFromSurface(
|
||||||
|
IntPtr renderer,
|
||||||
|
ref SDL_Surface surface
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern void SDL_DestroyRenderer(IntPtr renderer);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern void SDL_DestroyTexture(IntPtr texture);
|
||||||
|
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_GetNumRenderDrivers();
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_GetRenderDrawBlendMode(
|
||||||
|
IntPtr renderer,
|
||||||
|
ref SDL_BlendMode blendMode
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_GetRenderDrawColor(
|
||||||
|
IntPtr renderer,
|
||||||
|
ref byte r,
|
||||||
|
ref byte g,
|
||||||
|
ref byte b,
|
||||||
|
ref byte a
|
||||||
|
);
|
||||||
|
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_GetRenderDriverInfo(
|
||||||
|
int index,
|
||||||
|
ref SDL_RendererInfo info
|
||||||
|
);
|
||||||
|
|
||||||
|
/* IntPtr refers to an SDL_Renderer*, window to an SDL_Window* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern IntPtr SDL_GetRenderer(IntPtr window);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_GetRendererInfo(
|
||||||
|
IntPtr renderer,
|
||||||
|
ref SDL_RendererInfo info
|
||||||
|
);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_GetTextureAlphaMod(
|
||||||
|
IntPtr texture,
|
||||||
|
ref byte alpha
|
||||||
|
);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_GetTextureBlendMode(
|
||||||
|
IntPtr texture,
|
||||||
|
ref SDL_BlendMode blendMode
|
||||||
|
);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_GetTextureColorMod(
|
||||||
|
IntPtr texture,
|
||||||
|
ref byte r,
|
||||||
|
ref byte g,
|
||||||
|
ref byte b
|
||||||
|
);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture*, pixels to a void* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_LockTexture(
|
||||||
|
IntPtr texture,
|
||||||
|
ref SDL_Rect rect,
|
||||||
|
ref IntPtr pixels,
|
||||||
|
ref int pitch
|
||||||
|
);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_QueryTexture(
|
||||||
|
IntPtr texture,
|
||||||
|
ref uint format,
|
||||||
|
ref int access,
|
||||||
|
ref int w,
|
||||||
|
ref int h
|
||||||
|
);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture, pixels to a void* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_QueryTexturePixels(
|
||||||
|
IntPtr texture,
|
||||||
|
ref IntPtr pixels,
|
||||||
|
ref int pitch
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderClear(IntPtr renderer);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderCopy(
|
||||||
|
IntPtr renderer,
|
||||||
|
IntPtr texture,
|
||||||
|
ref SDL_Rect srcrect,
|
||||||
|
ref SDL_Rect dstrect
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderCopyEx(
|
||||||
|
IntPtr renderer,
|
||||||
|
IntPtr texture,
|
||||||
|
ref SDL_Rect srcrect,
|
||||||
|
ref SDL_Rect dstrect,
|
||||||
|
double angle,
|
||||||
|
ref SDL_Point center,
|
||||||
|
SDL_RendererFlip flip
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderDrawLine(
|
||||||
|
IntPtr renderer,
|
||||||
|
int x1,
|
||||||
|
int y1,
|
||||||
|
int x2,
|
||||||
|
int y2
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderDrawLines(
|
||||||
|
IntPtr renderer,
|
||||||
|
SDL_Point[] points,
|
||||||
|
int count
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderDrawPoint(
|
||||||
|
IntPtr renderer,
|
||||||
|
int x,
|
||||||
|
int y
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderDrawPoints(
|
||||||
|
IntPtr renderer,
|
||||||
|
SDL_Point[] points,
|
||||||
|
int count
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderDrawRect(
|
||||||
|
IntPtr renderer,
|
||||||
|
ref SDL_Rect rect
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderDrawRects(
|
||||||
|
IntPtr renderer,
|
||||||
|
SDL_Rect[] rects,
|
||||||
|
int count
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderFillRect(
|
||||||
|
IntPtr renderer,
|
||||||
|
ref SDL_Rect rect
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderFillRects(
|
||||||
|
IntPtr renderer,
|
||||||
|
SDL_Rect[] rects,
|
||||||
|
int count
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RendererGetViewport(
|
||||||
|
IntPtr renderer,
|
||||||
|
ref SDL_Rect rect
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern void SDL_RenderPresent(IntPtr renderer);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderReadPixels(
|
||||||
|
IntPtr renderer,
|
||||||
|
ref SDL_Rect rect,
|
||||||
|
uint format,
|
||||||
|
IntPtr pixels,
|
||||||
|
int pitch
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_RenderSetViewport(
|
||||||
|
IntPtr renderer,
|
||||||
|
ref SDL_Rect rect
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_SetRenderDrawBlendMode(
|
||||||
|
IntPtr renderer,
|
||||||
|
SDL_BlendMode blendMode
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_SetRenderDrawColor(
|
||||||
|
IntPtr renderer,
|
||||||
|
byte r,
|
||||||
|
byte g,
|
||||||
|
byte b,
|
||||||
|
byte a
|
||||||
|
);
|
||||||
|
|
||||||
|
/* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_SetRenderTarget(
|
||||||
|
IntPtr renderer,
|
||||||
|
IntPtr texture
|
||||||
|
);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_SetTextureAlphaMod(
|
||||||
|
IntPtr texture,
|
||||||
|
byte alpha
|
||||||
|
);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_SetTextureBlendMode(
|
||||||
|
IntPtr texture,
|
||||||
|
SDL_BlendMode blendMode
|
||||||
|
);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_SetTextureColorMod(
|
||||||
|
IntPtr texture,
|
||||||
|
byte r,
|
||||||
|
byte g,
|
||||||
|
byte b
|
||||||
|
);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern void SDL_UnlockTexture(IntPtr texture);
|
||||||
|
|
||||||
|
/* texture refers to an SDL_Texture* */
|
||||||
|
[DllImport(nativeLibName)]
|
||||||
|
public static extern int SDL_UpdateTexture(
|
||||||
|
IntPtr texture,
|
||||||
|
ref SDL_Rect rect,
|
||||||
|
IntPtr pixels,
|
||||||
|
int pitch
|
||||||
|
);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -849,12 +1187,14 @@ namespace SDL2
|
||||||
|
|
||||||
#region SDL_rect.h
|
#region SDL_rect.h
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct SDL_Point
|
public struct SDL_Point
|
||||||
{
|
{
|
||||||
public int x;
|
public int x;
|
||||||
public int y;
|
public int y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct SDL_Rect
|
public struct SDL_Rect
|
||||||
{
|
{
|
||||||
public int x;
|
public int x;
|
||||||
|
@ -913,6 +1253,7 @@ namespace SDL2
|
||||||
|
|
||||||
#region SDL_surface.h
|
#region SDL_surface.h
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct SDL_Surface
|
public struct SDL_Surface
|
||||||
{
|
{
|
||||||
// TODO...
|
// TODO...
|
||||||
|
|
Loading…
Reference in a new issue