MCPcopy Create free account
hub / github.com/PacktPublishing/3D-Graphics-Rendering-Cookbook / main

Function main

Chapter8/GL03_HDR/src/main.cpp:45–300  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

43bool g_EnableHDR = true;
44
45int main(void)
46{
47 GLApp app;
48
49 GLShader shdGridVertex("data/shaders/chapter05/GL01_grid.vert");
50 GLShader shdGridFragment("data/shaders/chapter05/GL01_grid.frag");
51 GLProgram progGrid(shdGridVertex, shdGridFragment);
52
53 GLShader shdFullScreenQuadVertex("data/shaders/chapter08/GL02_FullScreenQuad.vert");
54
55 GLShader shdCombineHDR("data/shaders/chapter08/GL03_HDR.frag");
56 GLProgram progCombineHDR(shdFullScreenQuadVertex, shdCombineHDR);
57
58 GLShader shdBlurX("data/shaders/chapter08/GL02_BlurX.frag");
59 GLShader shdBlurY("data/shaders/chapter08/GL02_BlurY.frag");
60 GLProgram progBlurX(shdFullScreenQuadVertex, shdBlurX);
61 GLProgram progBlurY(shdFullScreenQuadVertex, shdBlurY);
62
63 GLShader shdToLuminance("data/shaders/chapter08/GL03_ToLuminance.frag");
64 GLProgram progToLuminance(shdFullScreenQuadVertex, shdToLuminance);
65
66 GLShader shdBrightPass("data/shaders/chapter08/GL03_BrightPass.frag");
67 GLProgram progBrightPass(shdFullScreenQuadVertex, shdBrightPass);
68
69 const GLsizeiptr kUniformBufferSize = sizeof(PerFrameData);
70
71 GLBuffer perFrameDataBuffer(kUniformBufferSize, nullptr, GL_DYNAMIC_STORAGE_BIT);
72 glBindBufferRange(GL_UNIFORM_BUFFER, kBufferIndex_PerFrameUniforms, perFrameDataBuffer.getHandle(), 0, kUniformBufferSize);
73
74 glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
75 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
76 glEnable(GL_DEPTH_TEST);
77
78 GLShader shaderVertex ("data/shaders/chapter08/GL03_scene_IBL.vert");
79 GLShader shaderFragment("data/shaders/chapter08/GL03_scene_IBL.frag");
80 GLProgram program(shaderVertex, shaderFragment);
81
82 GLSceneData sceneData1("data/meshes/test.meshes", "data/meshes/test.scene", "data/meshes/test.materials");
83 GLSceneData sceneData2("data/meshes/test2.meshes", "data/meshes/test2.scene", "data/meshes/test2.materials");
84
85 GLMesh mesh1(sceneData1);
86 GLMesh mesh2(sceneData2);
87
88 glfwSetCursorPosCallback(
89 app.getWindow(),
90 [](auto* window, double x, double y)
91 {
92 int width, height;
93 glfwGetFramebufferSize(window, &width, &height);
94 mouseState.pos.x = static_cast<float>(x / width);
95 mouseState.pos.y = static_cast<float>(y / height);
96 ImGui::GetIO().MousePos = ImVec2((float)x, (float)y);
97 }
98 );
99
100 glfwSetMouseButtonCallback(
101 app.getWindow(),
102 [](auto* window, int button, int action, int mods)

Callers

nothing calls this directly

Calls 13

imguiTextureWindowGLFunction · 0.85
getWindowMethod · 0.80
setUpVectorMethod · 0.80
bindMethod · 0.80
useProgramMethod · 0.80
unbindMethod · 0.80
renderMethod · 0.80
swapBuffersMethod · 0.80
getHandleMethod · 0.45
updateMethod · 0.45
getViewMatrixMethod · 0.45
getPositionMethod · 0.45

Tested by

no test coverage detected