From b56bc62ad5531eed9ebee07966225283c332e2f0 Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Thu, 16 Mar 2023 11:11:56 +0900 Subject: [PATCH] Add usage of avatar-placeholder.png --- src/3d_renderer.cc | 21 +++++++++++++++++++++ src/3d_renderer.h | 1 + 2 files changed, 22 insertions(+) diff --git a/src/3d_renderer.cc b/src/3d_renderer.cc index d6fad9b..96a6a89 100644 --- a/src/3d_renderer.cc +++ b/src/3d_renderer.cc @@ -99,6 +99,12 @@ Renderer3D::Renderer3D() avatar_model = LoadModelFromMesh(GenMeshPlane(1.0F, 1.0F, 1, 1)); + auto placeholder_image = LoadImage("resources/avatar-placeholder.png"); + if (placeholder_image.data) { + avatar_placeholder_texture = LoadTextureFromImage(placeholder_image); + UnloadImage(placeholder_image); + } + // TODO DEBUG // auto texture1 = LoadRenderTexture(16, 16); // BeginTextureMode(texture1); @@ -140,6 +146,9 @@ Renderer3D::~Renderer3D() { UnloadModel(avatar_model); + if (avatar_placeholder_texture.has_value()) { + UnloadTexture(avatar_placeholder_texture.value()); + } if (avatar1_texture.has_value()) { UnloadTexture(avatar1_texture.value()); } @@ -569,6 +578,12 @@ void Renderer3D::draw_impl() { DrawModelEx(avatar_model, Vector3{camera.target.x - 1.0F, 2.0F, -1.0F}, Vector3{1.0F, 0.0F, 0.0F}, 90.0F, Vector3{1.0F, 1.0F, 1.0F}, WHITE); + } else if (avatar_placeholder_texture.has_value()) { + avatar_model.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = + avatar_placeholder_texture.value(); + DrawModelEx(avatar_model, Vector3{camera.target.x - 1.0F, 2.0F, -1.0F}, + Vector3{1.0F, 0.0F, 0.0F}, 90.0F, Vector3{1.0F, 1.0F, 1.0F}, + WHITE); } if (avatar2_texture.has_value()) { @@ -577,6 +592,12 @@ void Renderer3D::draw_impl() { DrawModelEx(avatar_model, Vector3{camera.target.x + 1.0F, 2.0F, -1.0F}, Vector3{1.0F, 0.0F, 0.0F}, 90.0F, Vector3{1.0F, 1.0F, 1.0F}, WHITE); + } else if (avatar_placeholder_texture.has_value()) { + avatar_model.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = + avatar_placeholder_texture.value(); + DrawModelEx(avatar_model, Vector3{camera.target.x + 1.0F, 2.0F, -1.0F}, + Vector3{1.0F, 0.0F, 0.0F}, 90.0F, Vector3{1.0F, 1.0F, 1.0F}, + WHITE); } EndMode3D(); diff --git a/src/3d_renderer.h b/src/3d_renderer.h index 3d15052..ce957f3 100644 --- a/src/3d_renderer.h +++ b/src/3d_renderer.h @@ -81,6 +81,7 @@ class Renderer3D : public GameRenderer { Texture2D paper_texture; Texture2D scissors_texture; + std::optional avatar_placeholder_texture; std::optional avatar1_texture; std::optional avatar2_texture; -- 2.49.0