use crate::{
blendmode::*, c_char, c_int, c_void, rect::*, stdinc::*, surface::*, video::*,
};
#[allow(unused)]
use crate::pixels::*;
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct SDL_RendererFlags(pub u32);
impl_bit_ops_for_tuple_newtype!(SDL_RendererFlags);
pub const SDL_RENDERER_SOFTWARE: SDL_RendererFlags =
SDL_RendererFlags(0x00000001);
pub const SDL_RENDERER_ACCELERATED: SDL_RendererFlags =
SDL_RendererFlags(0x00000002);
pub const SDL_RENDERER_PRESENTVSYNC: SDL_RendererFlags =
SDL_RendererFlags(0x00000004);
pub const SDL_RENDERER_TARGETTEXTURE: SDL_RendererFlags =
SDL_RendererFlags(0x00000008);
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(C)]
#[allow(missing_docs)]
pub struct SDL_RendererInfo {
pub name: *const c_char,
pub flags: Uint32,
pub num_texture_formats: Uint32,
pub texture_formats: [Uint32; 16],
pub max_texture_width: c_int,
pub max_texture_height: c_int,
}
impl Default for SDL_RendererInfo {
#[inline]
#[must_use]
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct SDL_ScaleMode(pub i32);
pub const SDL_ScaleModeNearest: SDL_ScaleMode = SDL_ScaleMode(0);
pub const SDL_ScaleModeLinear: SDL_ScaleMode = SDL_ScaleMode(1);
pub const SDL_ScaleModeBest: SDL_ScaleMode = SDL_ScaleMode(2);
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct SDL_TextureAccess(pub i32);
pub const SDL_TEXTUREACCESS_STATIC: SDL_TextureAccess = SDL_TextureAccess(0);
pub const SDL_TEXTUREACCESS_STREAMING: SDL_TextureAccess = SDL_TextureAccess(1);
pub const SDL_TEXTUREACCESS_TARGET: SDL_TextureAccess = SDL_TextureAccess(2);
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct SDL_TextureModulate(pub i32);
pub const SDL_TEXTUREMODULATE_NONE: SDL_TextureModulate =
SDL_TextureModulate(0);
pub const SDL_TEXTUREMODULATE_COLOR: SDL_TextureModulate =
SDL_TextureModulate(1);
pub const SDL_TEXTUREMODULATE_ALPHA: SDL_TextureModulate =
SDL_TextureModulate(2);
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct SDL_RendererFlip(pub u32);
impl_bit_ops_for_tuple_newtype!(SDL_RendererFlip);
pub const SDL_FLIP_NONE: SDL_RendererFlip = SDL_RendererFlip(0x00000000);
pub const SDL_FLIP_HORIZONTAL: SDL_RendererFlip = SDL_RendererFlip(0x00000001);
pub const SDL_FLIP_VERTICAL: SDL_RendererFlip = SDL_RendererFlip(0x00000002);
#[repr(transparent)]
pub struct SDL_Renderer(c_void);
#[repr(transparent)]
pub struct SDL_Texture(c_void);
extern "C" {
pub fn SDL_GetNumRenderDrivers() -> c_int;
pub fn SDL_GetRenderDriverInfo(
index: c_int, info: *mut SDL_RendererInfo,
) -> c_int;
pub fn SDL_CreateWindowAndRenderer(
width: c_int, height: c_int, window_flags: Uint32,
window: *mut *mut SDL_Window, renderer: *mut *mut SDL_Renderer,
) -> c_int;
pub fn SDL_CreateRenderer(
window: *mut SDL_Window, index: c_int, flags: Uint32,
) -> *mut SDL_Renderer;
pub fn SDL_CreateSoftwareRenderer(
surface: *mut SDL_Surface,
) -> *mut SDL_Renderer;
pub fn SDL_GetRenderer(window: *mut SDL_Window) -> *mut SDL_Renderer;
pub fn SDL_GetRendererInfo(
renderer: *mut SDL_Renderer, info: *mut SDL_RendererInfo,
) -> c_int;
pub fn SDL_GetRendererOutputSize(
renderer: *mut SDL_Renderer, w: *mut c_int, h: *mut c_int,
) -> c_int;
pub fn SDL_CreateTexture(
renderer: *mut SDL_Renderer, format: Uint32, access: c_int, w: c_int,
h: c_int,
) -> *mut SDL_Texture;
pub fn SDL_CreateTextureFromSurface(
renderer: *mut SDL_Renderer, surface: *mut SDL_Surface,
) -> *mut SDL_Texture;
pub fn SDL_QueryTexture(
texture: *mut SDL_Texture, format: *mut Uint32, access: *mut c_int,
w: *mut c_int, h: *mut c_int,
) -> c_int;
pub fn SDL_SetTextureColorMod(
texture: *mut SDL_Texture, r: Uint8, g: Uint8, b: Uint8,
) -> c_int;
pub fn SDL_GetTextureColorMod(
texture: *mut SDL_Texture, r: *mut Uint8, g: *mut Uint8, b: *mut Uint8,
) -> c_int;
pub fn SDL_SetTextureAlphaMod(
texture: *mut SDL_Texture, alpha: Uint8,
) -> c_int;
pub fn SDL_GetTextureAlphaMod(
texture: *mut SDL_Texture, alpha: *mut Uint8,
) -> c_int;
pub fn SDL_SetTextureBlendMode(
texture: *mut SDL_Texture, blendMode: SDL_BlendMode,
) -> c_int;
pub fn SDL_GetTextureBlendMode(
texture: *mut SDL_Texture, blendMode: *mut SDL_BlendMode,
) -> c_int;
pub fn SDL_SetTextureScaleMode(
texture: *mut SDL_Texture, scaleMode: SDL_ScaleMode,
) -> c_int;
pub fn SDL_GetTextureScaleMode(
texture: *mut SDL_Texture, scaleMode: *mut SDL_ScaleMode,
) -> c_int;
pub fn SDL_UpdateTexture(
texture: *mut SDL_Texture, rect: *const SDL_Rect, pixels: *const c_void,
pitch: c_int,
) -> c_int;
pub fn SDL_UpdateYUVTexture(
texture: *mut SDL_Texture, rect: *const SDL_Rect, Yplane: *const Uint8,
Ypitch: c_int, Uplane: *const Uint8, Upitch: c_int, Vplane: *const Uint8,
Vpitch: c_int,
) -> c_int;
pub fn SDL_LockTexture(
texture: *mut SDL_Texture, rect: *const SDL_Rect, pixels: *mut *mut c_void,
pitch: *mut c_int,
) -> c_int;
pub fn SDL_LockTextureToSurface(
texture: *mut SDL_Texture, rect: *const SDL_Rect,
surface: *mut *mut SDL_Surface,
) -> c_int;
pub fn SDL_UnlockTexture(texture: *mut SDL_Texture);
pub fn SDL_RenderTargetSupported(renderer: *mut SDL_Renderer) -> SDL_bool;
pub fn SDL_SetRenderTarget(
renderer: *mut SDL_Renderer, texture: *mut SDL_Texture,
) -> c_int;
pub fn SDL_GetRenderTarget(renderer: *mut SDL_Renderer) -> *mut SDL_Texture;
pub fn SDL_RenderSetLogicalSize(
renderer: *mut SDL_Renderer, w: c_int, h: c_int,
) -> c_int;
pub fn SDL_RenderGetLogicalSize(
renderer: *mut SDL_Renderer, w: *mut c_int, h: *mut c_int,
);
pub fn SDL_RenderSetIntegerScale(
renderer: *mut SDL_Renderer, enable: SDL_bool,
) -> c_int;
pub fn SDL_RenderGetIntegerScale(renderer: *mut SDL_Renderer) -> SDL_bool;
pub fn SDL_RenderSetViewport(
renderer: *mut SDL_Renderer, rect: *const SDL_Rect,
) -> c_int;
pub fn SDL_RenderGetViewport(
renderer: *mut SDL_Renderer, rect: *mut SDL_Rect,
) -> c_void;
pub fn SDL_RenderSetClipRect(
renderer: *mut SDL_Renderer, rect: *const SDL_Rect,
) -> c_int;
pub fn SDL_RenderGetClipRect(
renderer: *mut SDL_Renderer, rect: *mut SDL_Rect,
) -> c_void;
pub fn SDL_RenderIsClipEnabled(renderer: *mut SDL_Renderer) -> SDL_bool;
pub fn SDL_RenderSetScale(
renderer: *mut SDL_Renderer, scaleX: f32, scaleY: f32,
) -> c_int;
pub fn SDL_RenderGetScale(
renderer: *mut SDL_Renderer, scaleX: *mut f32, scaleY: *mut f32,
);
pub fn SDL_SetRenderDrawColor(
renderer: *mut SDL_Renderer, r: Uint8, g: Uint8, b: Uint8, a: Uint8,
) -> c_int;
pub fn SDL_GetRenderDrawColor(
renderer: *mut SDL_Renderer, r: *mut Uint8, g: *mut Uint8, b: *mut Uint8,
a: *mut Uint8,
) -> c_int;
pub fn SDL_SetRenderDrawBlendMode(
renderer: *mut SDL_Renderer, blendMode: SDL_BlendMode,
) -> c_int;
pub fn SDL_GetRenderDrawBlendMode(
renderer: *mut SDL_Renderer, blendMode: *mut SDL_BlendMode,
) -> c_int;
pub fn SDL_RenderClear(renderer: *mut SDL_Renderer) -> c_int;
pub fn SDL_RenderDrawPoint(
renderer: *mut SDL_Renderer, x: c_int, y: c_int,
) -> c_int;
pub fn SDL_RenderDrawPoints(
renderer: *mut SDL_Renderer, points: *const SDL_Point, count: c_int,
) -> c_int;
pub fn SDL_RenderDrawLine(
renderer: *mut SDL_Renderer, x1: c_int, y1: c_int, x2: c_int, y2: c_int,
) -> c_int;
pub fn SDL_RenderDrawLines(
renderer: *mut SDL_Renderer, points: *const SDL_Point, count: c_int,
) -> c_int;
pub fn SDL_RenderDrawRect(
renderer: *mut SDL_Renderer, rect: *const SDL_Rect,
) -> c_int;
pub fn SDL_RenderDrawRects(
renderer: *mut SDL_Renderer, rects: *const SDL_Rect, count: c_int,
) -> c_int;
pub fn SDL_RenderFillRect(
renderer: *mut SDL_Renderer, rect: *const SDL_Rect,
) -> c_int;
pub fn SDL_RenderFillRects(
renderer: *mut SDL_Renderer, rects: *const SDL_Rect, count: c_int,
) -> c_int;
pub fn SDL_RenderCopy(
renderer: *mut SDL_Renderer, texture: *mut SDL_Texture,
srcrect: *const SDL_Rect, dstrect: *const SDL_Rect,
) -> c_int;
pub fn SDL_RenderCopyEx(
renderer: *mut SDL_Renderer, texture: *mut SDL_Texture,
srcrect: *const SDL_Rect, dstrect: *const SDL_Rect, angle: f64,
center: *const SDL_Point, flip: SDL_RendererFlip,
) -> c_int;
pub fn SDL_RenderDrawPointF(
renderer: *mut SDL_Renderer, x: f32, y: f32,
) -> c_int;
pub fn SDL_RenderDrawPointsF(
renderer: *mut SDL_Renderer, points: *const SDL_FPoint, count: c_int,
) -> c_int;
pub fn SDL_RenderDrawLineF(
renderer: *mut SDL_Renderer, x1: f32, y1: f32, x2: f32, y2: f32,
) -> c_int;
pub fn SDL_RenderDrawLinesF(
renderer: *mut SDL_Renderer, points: *const SDL_FPoint, count: c_int,
) -> c_int;
pub fn SDL_RenderDrawRectF(
renderer: *mut SDL_Renderer, rect: *const SDL_FRect,
) -> c_int;
pub fn SDL_RenderDrawRectsF(
renderer: *mut SDL_Renderer, rects: *const SDL_FRect, count: c_int,
) -> c_int;
pub fn SDL_RenderFillRectF(
renderer: *mut SDL_Renderer, rect: *const SDL_FRect,
) -> c_int;
pub fn SDL_RenderFillRectsF(
renderer: *mut SDL_Renderer, rects: *const SDL_FRect, count: c_int,
) -> c_int;
pub fn SDL_RenderCopyF(
renderer: *mut SDL_Renderer, texture: *mut SDL_Texture,
srcrect: *const SDL_Rect, dstrect: *const SDL_FRect,
) -> c_int;
pub fn SDL_RenderCopyExF(
renderer: *mut SDL_Renderer, texture: *mut SDL_Texture,
srcrect: *const SDL_Rect, dstrect: *const SDL_FRect, angle: f64,
center: *const SDL_FPoint, flip: SDL_RendererFlip,
) -> c_int;
pub fn SDL_RenderReadPixels(
renderer: *mut SDL_Renderer, rect: *const SDL_Rect, format: Uint32,
pixels: *mut c_void, pitch: c_int,
) -> c_int;
pub fn SDL_RenderPresent(renderer: *mut SDL_Renderer);
pub fn SDL_DestroyTexture(texture: *mut SDL_Texture);
pub fn SDL_DestroyRenderer(renderer: *mut SDL_Renderer);
pub fn SDL_RenderFlush(renderer: *mut SDL_Renderer) -> c_int;
pub fn SDL_GL_BindTexture(
texture: *mut SDL_Texture, texw: *mut f32, texh: *mut f32,
) -> c_int;
pub fn SDL_GL_UnbindTexture(texture: *mut SDL_Texture) -> c_int;
pub fn SDL_RenderGetMetalLayer(renderer: *mut SDL_Renderer) -> *mut c_void;
pub fn SDL_RenderGetMetalCommandEncoder(
renderer: *mut SDL_Renderer,
) -> *mut c_void;
pub fn SDL_UpdateNVTexture(
texture: *mut SDL_Texture, rect: *const SDL_Rect, Yplane: *const Uint8,
Ypitch: c_int, UVplane: *const Uint8, UVpitch: c_int,
) -> c_int;
}