History

Add Job::Config to DebugDeferredBuffer

Zach Pomerantz committed 10 years ago

Commit ccbec541 parent f5a408d4 files · +69 −54Browse files

Showing the changes to libraries/render-utils/src/DebugDeferredBuffer.cpp (1 of 4 files). Show all

Unified · Split

libraries/render-utils/src/DebugDeferredBuffer.cpp+28−27
@@ -27,6 +27,14 @@ · 26 unmodified lines
2727
2828 using namespace render;
2929
30+void DebugDeferredBufferConfig::setMode(int newMode) {
31+ if (newMode > (int)DebugDeferredBuffer::Custom || newMode < 0) {
32+ mode = (int)DebugDeferredBuffer::Custom;
33+ } else {
34+ mode = newMode;
35+ }
36+}
37+
3038 enum Slots {
3139 Diffuse = 0,
3240 Normal,
@@ -129,37 +137,37 @@ DebugDeferredBuffer::DebugDeferredBuffer() { · 96 unmodified lines
129137 _customPipelines.emplace(CUSTOM_FILE, pipeline);
130138 }
131139
132−std::string DebugDeferredBuffer::getShaderSourceCode(Modes mode, std::string customFile) {
140+std::string DebugDeferredBuffer::getShaderSourceCode(Mode mode, std::string customFile) {
133141 switch (mode) {
134− case DiffuseMode:
142+ case Diffuse:
135143 return DEFAULT_DIFFUSE_SHADER;
136− case SpecularMode:
144+ case Specular:
137145 return DEFAULT_SPECULAR_SHADER;
138− case RoughnessMode:
146+ case Roughness:
139147 return DEFAULT_ROUGHNESS_SHADER;
140− case NormalMode:
148+ case Normal:
141149 return DEFAULT_NORMAL_SHADER;
142− case DepthMode:
150+ case Depth:
143151 return DEFAULT_DEPTH_SHADER;
144− case LightingMode:
152+ case Lighting:
145153 return DEFAULT_LIGHTING_SHADER;
146− case ShadowMode:
154+ case Shadow:
147155 return DEFAULT_SHADOW_SHADER;
148− case PyramidDepthMode:
156+ case PyramidDepth:
149157 return DEFAULT_PYRAMID_DEPTH_SHADER;
150− case AmbientOcclusionMode:
158+ case AmbientOcclusion:
151159 return DEFAULT_AMBIENT_OCCLUSION_SHADER;
152− case AmbientOcclusionBlurredMode:
160+ case AmbientOcclusionBlurred:
153161 return DEFAULT_AMBIENT_OCCLUSION_BLURRED_SHADER;
154− case CustomMode:
162+ case Custom:
155163 return getFileContent(customFile, DEFAULT_CUSTOM_SHADER);
156164 }
157165 Q_UNREACHABLE();
158166 return std::string();
159167 }
160168
161−bool DebugDeferredBuffer::pipelineNeedsUpdate(Modes mode, std::string customFile) const {
162− if (mode != CustomMode) {
169+bool DebugDeferredBuffer::pipelineNeedsUpdate(Mode mode, std::string customFile) const {
170+ if (mode != Custom) {
163171 return !_pipelines[mode];
164172 }
165173
@@ -175,7 +183,7 @@ bool DebugDeferredBuffer::pipelineNeedsUpdate(Modes mode, std::string customFile · 9 unmodified lines
175183 return true;
176184 }
177185
178−const gpu::PipelinePointer& DebugDeferredBuffer::getPipeline(Modes mode, std::string customFile) {
186+const gpu::PipelinePointer& DebugDeferredBuffer::getPipeline(Mode mode, std::string customFile) {
179187 if (pipelineNeedsUpdate(mode, customFile)) {
180188 static const std::string VERTEX_SHADER { debug_deferred_buffer_vert };
181189 static const std::string FRAGMENT_SHADER { debug_deferred_buffer_frag };
@@ -207,14 +215,14 @@ const gpu::PipelinePointer& DebugDeferredBuffer::getPipeline(Modes mode, std::st · 25 unmodified lines
207215 auto pipeline = gpu::Pipeline::create(program, std::make_shared<gpu::State>());
208216
209217 // Good to go add the brand new pipeline
210− if (mode != CustomMode) {
218+ if (mode != Custom) {
211219 _pipelines[mode] = pipeline;
212220 } else {
213221 _customPipelines[customFile].pipeline = pipeline;
214222 }
215223 }
216224
217− if (mode != CustomMode) {
225+ if (mode != Custom) {
218226 return _pipelines[mode];
219227 } else {
220228 return _customPipelines[customFile].pipeline;
@@ -227,13 +235,6 @@ void DebugDeferredBuffer::run(const SceneContextPointer& sceneContext, const Ren · 6 unmodified lines
227235 assert(renderContext->getArgs()->_viewFrustum);
228236 RenderArgs* args = renderContext->getArgs();
229237
230− // Guard against unspecified modes
231− auto mode = renderContext->_deferredDebugMode;
232− if (mode > (int)CustomMode) {
233− renderContext->_deferredDebugMode = -1;
234− return;
235− }
236−
237238 gpu::doInBatch(args->_context, [&](gpu::Batch& batch) {
238239 const auto geometryBuffer = DependencyManager::get<GeometryCache>();
239240 const auto framebufferCache = DependencyManager::get<FramebufferCache>();
@@ -250,7 +251,7 @@ void DebugDeferredBuffer::run(const SceneContextPointer& sceneContext, const Ren · 10 unmodified lines
250251 // TODO REMOVE: Temporary until UI
251252 auto first = _customPipelines.begin()->first;
252253
253− batch.setPipeline(getPipeline(Modes(renderContext->_deferredDebugMode), first));
254+ batch.setPipeline(getPipeline(_mode, first));
254255
255256 batch.setResourceTexture(Diffuse, framebufferCache->getDeferredColorTexture());
256257 batch.setResourceTexture(Normal, framebufferCache->getDeferredNormalTexture());
@@ -263,8 +264,8 @@ void DebugDeferredBuffer::run(const SceneContextPointer& sceneContext, const Ren · 6 unmodified lines
263264 batch.setResourceTexture(AmbientOcclusionBlurred, framebufferCache->getOcclusionBlurredTexture());
264265
265266 const glm::vec4 color(1.0f, 1.0f, 1.0f, 1.0f);
266− const glm::vec2 bottomLeft(renderContext->_deferredDebugSize.x, renderContext->_deferredDebugSize.y);
267− const glm::vec2 topRight(renderContext->_deferredDebugSize.z, renderContext->_deferredDebugSize.w);
267+ const glm::vec2 bottomLeft(_size.x, _size.y);
268+ const glm::vec2 topRight(_size.z, _size.w);
268269 geometryBuffer->renderQuad(batch, bottomLeft, topRight, color);
269270 });
270271 }