diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-05-19 01:32:27 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-05-19 01:35:36 +0300 |
commit | b3e53d6daaf95860c7a5fd16d79b411dbc7b0295 (patch) | |
tree | 96aeec4240adb482bdecdd62bcd7e88f0a6fb987 /source/blender/draw/engines | |
parent | f4028630bfdaa0e22be0872f209505dbb6b0aa2d (diff) |
EEVEE-Next: Fix display of compiling shader countdown
Also fix naming convention on public variable.
Diffstat (limited to 'source/blender/draw/engines')
3 files changed, 24 insertions, 16 deletions
diff --git a/source/blender/draw/engines/eevee_next/eevee_instance.cc b/source/blender/draw/engines/eevee_next/eevee_instance.cc index d037b46eaef..606630bcdef 100644 --- a/source/blender/draw/engines/eevee_next/eevee_instance.cc +++ b/source/blender/draw/engines/eevee_next/eevee_instance.cc @@ -8,6 +8,8 @@ * An instance contains all structures needed to do a complete render. */ +#include <sstream> + #include "BKE_global.h" #include "BKE_object.h" #include "BLI_rect.h" @@ -184,6 +186,12 @@ void Instance::draw_viewport(DefaultFramebufferList *dfbl) UNUSED_VARS(dfbl); render_sample(); velocity.step_swap(); + + if (materials.queued_shaders_count > 0) { + std::stringstream ss; + ss << "Compiling Shaders " << materials.queued_shaders_count; + info = ss.str(); + } } /** \} */ diff --git a/source/blender/draw/engines/eevee_next/eevee_material.cc b/source/blender/draw/engines/eevee_next/eevee_material.cc index d28e165478f..33204ed9474 100644 --- a/source/blender/draw/engines/eevee_next/eevee_material.cc +++ b/source/blender/draw/engines/eevee_next/eevee_material.cc @@ -75,11 +75,11 @@ MaterialModule::MaterialModule(Instance &inst) : inst_(inst) { bNodeTree *ntree = ntreeAddTree(nullptr, "Shader Nodetree", ntreeType_Shader->idname); - diffuse_mat_ = (::Material *)BKE_id_new_nomain(ID_MA, "EEVEE default diffuse"); - diffuse_mat_->nodetree = ntree; - diffuse_mat_->use_nodes = true; + diffuse_mat = (::Material *)BKE_id_new_nomain(ID_MA, "EEVEE default diffuse"); + diffuse_mat->nodetree = ntree; + diffuse_mat->use_nodes = true; /* To use the forward pipeline. */ - diffuse_mat_->blend_method = MA_BM_BLEND; + diffuse_mat->blend_method = MA_BM_BLEND; bNode *bsdf = nodeAddStaticNode(nullptr, ntree, SH_NODE_BSDF_DIFFUSE); bNodeSocket *base_color = nodeFindSocket(bsdf, SOCK_IN, "Color"); @@ -98,11 +98,11 @@ MaterialModule::MaterialModule(Instance &inst) : inst_(inst) { bNodeTree *ntree = ntreeAddTree(nullptr, "Shader Nodetree", ntreeType_Shader->idname); - glossy_mat_ = (::Material *)BKE_id_new_nomain(ID_MA, "EEVEE default metal"); - glossy_mat_->nodetree = ntree; - glossy_mat_->use_nodes = true; + glossy_mat = (::Material *)BKE_id_new_nomain(ID_MA, "EEVEE default metal"); + glossy_mat->nodetree = ntree; + glossy_mat->use_nodes = true; /* To use the forward pipeline. */ - glossy_mat_->blend_method = MA_BM_BLEND; + glossy_mat->blend_method = MA_BM_BLEND; bNode *bsdf = nodeAddStaticNode(nullptr, ntree, SH_NODE_BSDF_GLOSSY); bNodeSocket *base_color = nodeFindSocket(bsdf, SOCK_IN, "Color"); @@ -149,14 +149,14 @@ MaterialModule::~MaterialModule() for (Material *mat : material_map_.values()) { delete mat; } - BKE_id_free(nullptr, glossy_mat_); - BKE_id_free(nullptr, diffuse_mat_); + BKE_id_free(nullptr, glossy_mat); + BKE_id_free(nullptr, diffuse_mat); BKE_id_free(nullptr, error_mat_); } void MaterialModule::begin_sync() { - queued_shaders_count_ = 0; + queued_shaders_count = 0; for (Material *mat : material_map_.values()) { mat->init = false; @@ -180,7 +180,7 @@ MaterialPass MaterialModule::material_pass_get(::Material *blender_mat, case GPU_MAT_SUCCESS: break; case GPU_MAT_QUEUED: - queued_shaders_count_++; + queued_shaders_count++; blender_mat = (geometry_type == MAT_GEOM_VOLUME) ? BKE_material_default_volume() : BKE_material_default_surface(); matpass.gpumat = inst_.shaders.material_shader_get( diff --git a/source/blender/draw/engines/eevee_next/eevee_material.hh b/source/blender/draw/engines/eevee_next/eevee_material.hh index 6cc5b483fc3..bdf9b7824c5 100644 --- a/source/blender/draw/engines/eevee_next/eevee_material.hh +++ b/source/blender/draw/engines/eevee_next/eevee_material.hh @@ -219,8 +219,10 @@ struct MaterialArray { class MaterialModule { public: - ::Material *diffuse_mat_; - ::Material *glossy_mat_; + ::Material *diffuse_mat; + ::Material *glossy_mat; + + int64_t queued_shaders_count = 0; private: Instance &inst_; @@ -234,8 +236,6 @@ class MaterialModule { ::Material *error_mat_; - int64_t queued_shaders_count_ = 0; - public: MaterialModule(Instance &inst); ~MaterialModule(); |