vulkan游戏引擎renderer_backend实现

发布于:2025-06-01 ⋅ 阅读:(27) ⋅ 点赞:(0)

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;





 

}


网站公告

今日签到

点亮在社区的每一天
去签到