backend_interface.odin 840 B

12345678910111213141516171819202122232425
  1. package karl2d
  2. Rendering_Backend :: struct {
  3. state_size: proc() -> int,
  4. init: proc(state: rawptr, window_handle: uintptr, swapchain_width, swapchain_height: int,
  5. allocator := context.allocator, loc := #caller_location),
  6. shutdown: proc(),
  7. clear: proc(color: Color),
  8. present: proc(),
  9. draw: proc(shader: Shader, texture: Texture_Handle, vertex_buffer: []u8),
  10. set_internal_state: proc(state: rawptr),
  11. load_texture: proc(data: []u8, width: int, height: int) -> Texture_Handle,
  12. destroy_texture: proc(handle: Texture_Handle),
  13. load_shader: proc(shader: string, layout_formats: []Shader_Input_Format = {}) -> Shader,
  14. destroy_shader: proc(shader: Shader),
  15. get_swapchain_width: proc() -> int,
  16. get_swapchain_height: proc() -> int,
  17. set_view_projection_matrix: proc(m: Mat4),
  18. batch_vertex: proc(v: Vec2, uv: Vec2, color: Color),
  19. }