I am trying to make a sdl renderer dynamicly using new but It crashes.
// Renderer cache
tor_sdl2_renderer_renderer_cache : map[u8] ^tor_sdl2_renderer
// Instance
tor_sdl2_renderer :: struct
{
state : u8,
renderer : ^sdl2.Renderer,
clear_color : [4]u8,
draw_color : [4]u8,
draw_color_sdl : sdl2.Color,
bound_texture : ^sdl2.Texture,
bound_font : ^sdl2_tff.Font,
viewport_rects : [TOR_SDL2_RENDERER_VIEWPORT_COUNT] tor_sdl2_rect,
texture_cache : map[u8] ^sdl2.Texture,
ttf_font_cache : map[u8] ^sdl2_tff.Font,
ttf_text_static_texture_cache : map[tor_sdl2_renderer_text_tff_static_key] tor_sdl2_renderer_text_tff_static_value
}
renderer_create :: proc(sdl2_window : rawptr) -> u8
{
// Validate
assert(sdl2_window != nil, "Renderer (SDL) : SDL Window is undefined")
// Enable batching
sdl2.SetHint(sdl2.HINT_RENDER_BATCHING,"1")
// Create renderer
renderer_id := u8(0)
for i := 1; i < 255; i+=1
{
if (tor_sdl2_renderer_renderer_cache[u8(i)] == nil)
{
// ID
renderer_id = u8(i)
// Create renderer
tor_sdl2_renderer_renderer_cache[renderer_id] = new(tor_sdl2_renderer)
renderer.renderer = sdl2.CreateRenderer((^sdl2.Window)(sdl2_window),-1,sdl2.RENDERER_ACCELERATED)
// Default
//renderer_set_to_defaults()
// Return
return renderer_id
}
}
return 0
}