コード例 #1
0
void gpu_init_renderer_register(void)
{
	int i;

	if(_gpu_renderer_register_is_initialized)
		return;
	
	for(i = 0; i < GPU_MAX_REGISTERED_RENDERERS; i++)
	{
		_gpu_renderer_register[i].id.name = "Unknown";
		_gpu_renderer_register[i].id.renderer = GPU_RENDERER_UNKNOWN;
		_gpu_renderer_register[i].createFn = NULL;
		_gpu_renderer_register[i].freeFn = NULL;
	}
	for(i = 0; i < GPU_MAX_ACTIVE_RENDERERS; i++)
	{
		_gpu_renderer_map[i] = NULL;
	}
	
	GPU_GetDefaultRendererOrder(&_gpu_renderer_order_size, _gpu_renderer_order);
	
	_gpu_renderer_register_is_initialized = 1;
	
	gpu_register_built_in_renderers();
}
コード例 #2
0
ファイル: SDL_gpu_Renderer.c プロジェクト: ArtBears/wesnoth
void GPU_InitRendererRegister(void)
{
	int i;

	if(initialized)
		return;
	
	for(i = 0; i < MAX_REGISTERED_RENDERERS; i++)
	{
		rendererRegister[i].id.id = GPU_RENDERER_UNKNOWN;
		rendererRegister[i].id.index = i;
		rendererRegister[i].createFn = NULL;
		rendererRegister[i].freeFn = NULL;
	}
	for(i = 0; i < MAX_ACTIVE_RENDERERS; i++)
	{
		rendererMap[i] = NULL;
	}
	
	GPU_GetDefaultRendererOrder(&renderer_order_size, renderer_order);
	
	initialized = 1;
	
	GPU_RegisterRenderers();
}
コード例 #3
0
void GPU_SetRendererOrder(int order_size, GPU_RendererID* order)
{
    if(order == NULL)
    {
        // Restore the default order
        int count = 0;
        GPU_RendererID default_order[GPU_RENDERER_ORDER_MAX];
        GPU_GetDefaultRendererOrder(&count, default_order);
        GPU_SetRendererOrder(count, default_order);  // Call us again with the default order
        return;
    }
    
    if(order_size <= 0)
        return;
    
    if(order_size > GPU_RENDERER_ORDER_MAX)
    {
        GPU_PushErrorCode(__func__, GPU_ERROR_USER_ERROR, "Given order_size (%d) is greater than GPU_RENDERER_ORDER_MAX (%d)", order_size, GPU_RENDERER_ORDER_MAX);
        order_size = GPU_RENDERER_ORDER_MAX;
    }
    
    memcpy(_gpu_renderer_order, order, order_size*sizeof(GPU_RendererID));
    _gpu_renderer_order_size = order_size;
}