云计算百科
云计算领域专业知识百科平台

vulkan游戏引擎renderer_backend实现

1.renderer_backend.h

#pragma once

#include "renderer_types.inl"

struct platform_state;

b8 renderer_backend_create(renderer_backend_type type,struct platform_state* plat_state,renderer_backend* out_renderer_backend);

void renderer_backend_destroy(renderer_backend* renderer_backend);

2.renderer_backend.c

#include "renderer_backend.h"

 

#include "vulkan/vulkan_backend.h"

b8 renderer_backend_create(renderer_backend_type type,struct platform_state* plat_state,renderer_backend* out_renderer_backend)

{

 

    out_renderer_backend->plat_state = plat_state;

 

    if(type == RENDERER_BACKEND_TYPE_VULKAN)

    {

        out_renderer_backend->initialize = vulkan_renderer_backend_initialize;

        out_renderer_backend->shutdown = vulkan_renderer_backend_shutdown;

        out_renderer_backend->begin_frame = vulkan_renderer_backend_begin_frame;

        out_renderer_backend->update_global_state = vulkan_renderer_update_global_state;

        out_renderer_backend->end_frame = vulkan_renderer_backend_end_frame;

        out_renderer_backend->resized=vulkan_renderer_backend_on_resized;

        out_renderer_backend->update_object = vulkan_backend_update_object;

      //  out_renderer_backend->create_texture = vulkan_renderer_create_texture;

        //out_renderer_backend->destroy_texture = vulkan_renderer_destroy_texture;

 

        return true;

 

    }

    return false;

 

}

 

void renderer_backend_destroy(renderer_backend* renderer_backend)

{

    renderer_backend->initialize = 0;

    renderer_backend->shutdown = 0;

    renderer_backend->begin_frame = 0;

    renderer_backend->update_global_state = 0;

    renderer_backend->end_frame= 0;

    renderer_backend->resized=0;

    renderer_backend->update_object = 0;

    //renderer_backend->create_texture = 0;

    //renderer_backend->destroy_texture = 0;

 

}

赞(0)
未经允许不得转载:网硕互联帮助中心 » vulkan游戏引擎renderer_backend实现
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!