17 bool debug_flag_wireframe =
false;
18 bool debug_flag_profiler =
false;
19 bool debug_flag_stats =
false;
20 bool debug_flag_text =
false;
21 bool debug_flag_ifh =
false;
23 bool clear_flag_color =
true;
24 bool clear_flag_depth =
true;
25 bool clear_flag_stencil =
false;
27 std::string msaa =
"off";
28 bool reset_vsync =
false;
29 bool reset_max_anisotropy =
false;
30 bool reset_flush_after_render =
false;
31 bool reset_srgb_backbuffer =
false;
32 bool reset_hdr10 =
false;
33 bool reset_hidpi =
false;
34 bool reset_depth_clamp =
false;
35 bool reset_transparent_backbuffer =
false;
37 BlamVector4
color = BlamVector4();
38 BlamVector4 uv = BlamVector4();
39 BlamVector4 flags = BlamVector4();
41 bool sf_write_r =
true;
42 bool sf_write_g =
true;
43 bool sf_write_b =
true;
44 bool sf_write_a =
true;
45 bool sf_write_z =
true;
47 std::string sf_cull_direction =
"counter-clockwise";
48 std::string sf_blend_mode =
"add";
49 std::string sf_depth_test =
"less";
52 bool sf_line_aa =
false;
53 bool sf_conservative_raster =
false;
54 bool sf_front_ccw =
false;
55 bool sf_blend_independent =
false;
56 bool sf_blend_alpha_to_coverage =
false;
93 if (debug_flag_wireframe) debug_flags += BGFX_DEBUG_WIREFRAME;
94 if (debug_flag_profiler) debug_flags += BGFX_DEBUG_PROFILER;
95 if (debug_flag_stats) debug_flags += BGFX_DEBUG_STATS;
96 if (debug_flag_text) debug_flags += BGFX_DEBUG_TEXT;
97 if (debug_flag_ifh) debug_flags += BGFX_DEBUG_IFH;
99 bgfx::setDebug(debug_flags);
110 if (clear_flag_color) clear_flags += BGFX_CLEAR_COLOR;
111 if (clear_flag_stencil) clear_flags += BGFX_CLEAR_STENCIL;
112 if (clear_flag_depth) clear_flags += BGFX_CLEAR_DEPTH;
143 ImGui::Checkbox(
"transparent backbuffer", &reset_transparent_backbuffer);
151 else if (msaa ==
"4x")
155 else if (msaa ==
"8x")
159 else if (msaa ==
"16x")
165 if (reset_max_anisotropy)
reset_flags += BGFX_RESET_MAXANISOTROPY;
166 if (reset_flush_after_render)
reset_flags += BGFX_RESET_FLUSH_AFTER_RENDER;
167 if (reset_srgb_backbuffer)
reset_flags += BGFX_RESET_SRGB_BACKBUFFER;
170 if (reset_depth_clamp)
reset_flags += BGFX_RESET_DEPTH_CLAMP;
171 if (reset_transparent_backbuffer)
reset_flags += BGFX_RESET_TRANSPARENT_BACKBUFFER;
178 bgfx::UniformHandle test_color_uniform = bgfx::createUniform(
"test_color_uniform", bgfx::UniformType::Vec4);
179 bgfx::UniformHandle test_uv_uniform = bgfx::createUniform(
"test_uv_uniform", bgfx::UniformType::Vec4);
180 bgfx::UniformHandle test_debug_flags = bgfx::createUniform(
"test_debug_flags", bgfx::UniformType::Vec4);
187 bgfx::setUniform(test_color_uniform, &
color);
188 bgfx::setUniform(test_uv_uniform, &uv);
189 bgfx::setUniform(test_debug_flags, &flags);
203 if (
ImGui::Selectable(
"counter-clockwise (ccw)")) sf_cull_direction =
"counter-clockwise";
236 ImGui::Checkbox(
"conservative rasterization", &sf_conservative_raster);
239 ImGui::Checkbox(
"blend alpha-to-coverage", &sf_blend_alpha_to_coverage);
243 if (sf_cull_direction ==
"clockwise") flags |= BGFX_STATE_CULL_CW;
244 else if (sf_cull_direction ==
"counter-clockwise") flags |= BGFX_STATE_CULL_CCW;
246 if (sf_write_r) flags |= BGFX_STATE_WRITE_R;
247 if (sf_write_g) flags |= BGFX_STATE_WRITE_G;
248 if (sf_write_b) flags |= BGFX_STATE_WRITE_B;
249 if (sf_write_a) flags |= BGFX_STATE_WRITE_A;
250 if (sf_write_z) flags |= BGFX_STATE_WRITE_Z;
252 if (sf_blend_mode ==
"add") flags |= BGFX_STATE_BLEND_ADD;
253 else if (sf_blend_mode ==
"alpha") flags |= BGFX_STATE_BLEND_ALPHA;
254 else if (sf_blend_mode ==
"darken") flags |= BGFX_STATE_BLEND_DARKEN;
255 else if (sf_blend_mode ==
"lighten") flags |= BGFX_STATE_BLEND_LIGHTEN;
256 else if (sf_blend_mode ==
"multiply") flags |= BGFX_STATE_BLEND_MULTIPLY;
257 else if (sf_blend_mode ==
"normal") flags |= BGFX_STATE_BLEND_NORMAL;
258 else if (sf_blend_mode ==
"screen") flags |= BGFX_STATE_BLEND_SCREEN;
259 else if (sf_blend_mode ==
"linear burn") flags |= BGFX_STATE_BLEND_LINEAR_BURN;
261 if (sf_depth_test ==
"less") flags |= BGFX_STATE_DEPTH_TEST_LESS;
262 else if (sf_depth_test ==
"less or equal") flags |= BGFX_STATE_DEPTH_TEST_LEQUAL;
263 else if (sf_depth_test ==
"equal") flags |= BGFX_STATE_DEPTH_TEST_EQUAL;
264 else if (sf_depth_test ==
"greater or equal") flags |= BGFX_STATE_DEPTH_TEST_GEQUAL;
265 else if (sf_depth_test ==
"greater") flags |= BGFX_STATE_DEPTH_TEST_GREATER;
266 else if (sf_depth_test ==
"not equal") flags |= BGFX_STATE_DEPTH_TEST_NOTEQUAL;
267 else if (sf_depth_test ==
"never") flags |= BGFX_STATE_DEPTH_TEST_NEVER;
268 else if (sf_depth_test ==
"always") flags |= BGFX_STATE_DEPTH_TEST_ALWAYS;
270 if (sf_msaa) flags |= BGFX_STATE_MSAA;
271 if (sf_line_aa) flags |= BGFX_STATE_LINEAA;
272 if (sf_conservative_raster) flags |= BGFX_STATE_CONSERVATIVE_RASTER;
273 if (sf_front_ccw) flags |= BGFX_STATE_FRONT_CCW;
274 if (sf_blend_independent) flags |= BGFX_STATE_BLEND_INDEPENDENT;
275 if (sf_blend_alpha_to_coverage) flags |= BGFX_STATE_BLEND_ALPHA_TO_COVERAGE;