// SPDX-FileCopyrightText: 2024 Joshua Goins // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include "texture.h" struct RenderPart { size_t numIndices; Buffer vertexBuffer; // Only used in the simple renderer Buffer indexBuffer; std::vector streamBuffer; // Only used in the game renderer int materialIndex = 0; physis_Part originalPart; }; enum class MaterialType { Object, Skin }; struct RenderMaterial { physis_Material mat; MaterialType type = MaterialType::Object; physis_SHPK shaderPackage{}; std::optional diffuseTexture; std::optional normalTexture; std::optional specularTexture; std::optional multiTexture; std::optional tableTexture; Buffer materialBuffer; }; struct DrawObject { QString name; physis_MDL model; std::vector parts; std::array boneData; // JOINT_MATRIX_SIZE_DAWNTRAIL std::vector materials; glm::vec3 position; bool skinned = false; uint16_t from_body_id = 101; uint16_t to_body_id = 101; Buffer boneInfoBuffer; };