#+build js #+private file package karl2d @(private="package") RENDER_BACKEND_NIL :: Render_Backend_Interface { state_size = rbnil_state_size, init = rbnil_init, shutdown = rbnil_shutdown, clear = rbnil_clear, present = rbnil_present, draw = rbnil_draw, resize_swapchain = rbnil_resize_swapchain, get_swapchain_width = rbnil_get_swapchain_width, get_swapchain_height = rbnil_get_swapchain_height, flip_z = rbnil_flip_z, set_internal_state = rbnil_set_internal_state, create_texture = rbnil_create_texture, load_texture = rbnil_load_texture, update_texture = rbnil_update_texture, destroy_texture = rbnil_destroy_texture, create_render_texture = rbnil_create_render_texture, destroy_render_target = rbnil_destroy_render_target, set_texture_filter = rbnil_set_texture_filter, load_shader = rbnil_load_shader, destroy_shader = rbnil_destroy_shader, default_shader_vertex_source = rbnil_default_shader_vertex_source, default_shader_fragment_source = rbnil_default_shader_fragment_source, } import "core:log" rbnil_state_size :: proc() -> int { return 0 } rbnil_init :: proc(state: rawptr, window_handle: Window_Handle, swapchain_width, swapchain_height: int, allocator := context.allocator) { log.info("Render Backend nil init") } rbnil_shutdown :: proc() { log.info("Render Backend nil shutdown") } rbnil_clear :: proc(render_texture: Render_Target_Handle, color: Color) { } rbnil_present :: proc() { } rbnil_draw :: proc( shd: Shader, render_texture: Render_Target_Handle, bound_textures: []Texture_Handle, scissor: Maybe(Rect), blend_mode: Blend_Mode, vertex_buffer: []u8, ) { } rbnil_resize_swapchain :: proc(w, h: int) { } rbnil_get_swapchain_width :: proc() -> int { return 0 } rbnil_get_swapchain_height :: proc() -> int { return 0 } rbnil_flip_z :: proc() -> bool { return false } rbnil_set_internal_state :: proc(state: rawptr) { } rbnil_create_texture :: proc(width: int, height: int, format: Pixel_Format) -> Texture_Handle { return {} } rbnil_load_texture :: proc(data: []u8, width: int, height: int, format: Pixel_Format) -> Texture_Handle { return {} } rbnil_update_texture :: proc(th: Texture_Handle, data: []u8, rect: Rect) -> bool { return true } rbnil_destroy_texture :: proc(th: Texture_Handle) { } rbnil_create_render_texture :: proc(width: int, height: int) -> (Texture_Handle, Render_Target_Handle) { return {}, {} } rbnil_destroy_render_target :: proc(render_target: Render_Target_Handle) { } rbnil_set_texture_filter :: proc( th: Texture_Handle, scale_down_filter: Texture_Filter, scale_up_filter: Texture_Filter, mip_filter: Texture_Filter, ) { } rbnil_load_shader :: proc( vs_source: []byte, fs_source: []byte, desc_allocator := frame_allocator, layout_formats: []Pixel_Format = {}, ) -> ( handle: Shader_Handle, desc: Shader_Desc, ) { return {}, {} } rbnil_destroy_shader :: proc(h: Shader_Handle) { } rbnil_default_shader_vertex_source :: proc() -> []byte { return {} } rbnil_default_shader_fragment_source :: proc() -> []byte { return {} }