/* * Tuxánci 2 - A first person shooter * Copyright (C) 2007-2011 Tuxánci Development Team * Copyright (C) 2025-2026 Connor Thomson * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef TA_OBJ_MODEL_H #define TA_OBJ_MODEL_H #include "obj.h" #include "ta_sdl.h" typedef struct ta_obj_model { SDL_GPUGraphicsPipeline *pipeline; SDL_GPUBuffer *vertex_buffer; ta_obj_mesh mesh; Uint32 vertex_count; bool uploaded; float position[3]; float rotation[3]; } ta_obj_model; bool ta_obj_model_init(ta_obj_model *model, SDL_GPUDevice *device, const unsigned char *data, size_t size, SDL_GPUTextureFormat color_format, SDL_GPUTextureFormat depth_format, SDL_GPUSampleCount sample_count); void ta_obj_model_upload(ta_obj_model *model, SDL_GPUCommandBuffer *command_buffer, SDL_GPUDevice *device); void ta_obj_model_render(const ta_obj_model *model, SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass, int window_width, int window_height); void ta_obj_model_destroy(ta_obj_model *model, SDL_GPUDevice *device); #endif // TA_OBJ_MODEL_H