Skip to content

Commit d00e46e

Browse files
author
Konstantin Zverev
committed
Merge remote-tracking branch 'github/baikal-next' into baikal-next
2 parents 1dd91ef + 1a3f18e commit d00e46e

File tree

8 files changed

+86
-67
lines changed

8 files changed

+86
-67
lines changed

3rdparty/glfw/lib/x64/libglfw3.a

220 KB
Binary file not shown.

App/App.lua

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,23 @@ project "App"
44
links {"RadeonRays", "CLW", "Calc"}
55
files { "../App/**.inl", "../App/**.h", "../App/**.cpp", "../App/**.cl", "../App/**.fsh", "../App/**.vsh" }
66

7-
includedirs{ "../RadeonRays/include", "../CLW", ".", "../3rdparty/glfw/include"}
7+
includedirs{ "../RadeonRays/include", "../CLW", "."}
88

99
if os.is("macosx") then
1010
sysincludedirs {"/usr/local/include"}
11+
includedirs{"../3rdparty/glfw/include"}
1112
libdirs {"/usr/local/lib", "../3rdparty/glfw/lib/x64"}
12-
linkoptions{ "-framework OpenGL" }
13+
linkoptions{ "-framework OpenGL -framework CoreFoundation -framework CoreGraphics -framework IOKit -framework AppKit -framework QuartzCore" }
1314
buildoptions "-std=c++11 -stdlib=libc++"
14-
links {"OpenImageIO"}
15+
links {"OpenImageIO", "glfw3"}
1516
end
1617

1718
if os.is("windows") then
18-
includedirs { "../3rdparty/glew/include", "../3rdparty/freeglut/include", "../3rdparty/oiio/include" }
19+
includedirs { "../3rdparty/glew/include", "../3rdparty/freeglut/include",
20+
"../3rdparty/oiio/include", "../3rdparty/glfw/include"}
1921
links {"RadeonRays", "glfw3"}
2022
if not _OPTIONS["benchmark"] then
21-
links {"glew", "OpenGL32"}
22-
23+
links {"glew", "OpenGL32", "glfw3"}
2324
end
2425
libdirs { "../3rdparty/glew/lib/%{cfg.platform}",
2526
"../3rdparty/freeglut/lib/%{cfg.platform}",

App/GLSL/simple.fsh

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,15 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
THE SOFTWARE.
2121
********************************************************************/
2222

23+
#version 330
24+
2325
uniform sampler2D g_Texture;
2426

25-
varying vec2 Texcoord;
27+
smooth in vec2 Texcoord;
28+
29+
out vec4 OutputColor;
2630

2731
void main()
2832
{
29-
gl_FragColor = texture2D(g_Texture, Texcoord);
30-
}
33+
OutputColor = texture(g_Texture, Texcoord);
34+
}

App/GLSL/simple.vsh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
THE SOFTWARE.
2121
********************************************************************/
2222

23-
attribute vec3 inPosition;
24-
attribute vec2 inTexcoord;
23+
#version 330
2524

26-
varying vec2 Texcoord;
25+
layout (location=0) in vec3 inPosition;
26+
layout (location=1) in vec2 inTexcoord;
27+
28+
smooth out vec2 Texcoord;
2729

2830
void main()
2931
{

App/ImGUI/imgui_impl_glfw_gl3.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
#ifdef __APPLE__
1313
#include <OpenCL/OpenCL.h>
14-
#include <OpenGL/OpenGL.h>
14+
#include <OpenGL/gl3.h>
15+
#include "GLFW/glfw3.h"
1516
#elif WIN32
1617
#define NOMINMAX
1718
#include <Windows.h>

App/Renderers/PT/ptrenderer.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,6 @@ namespace Baikal
261261
bool aov_pass_needed = (FindFirstNonZeroOutput(false) != nullptr);
262262
if (aov_pass_needed)
263263
{
264-
int num_rays = tile_size.x * tile_size.y;
265264
FillAOVs(clwscene, tile_origin, tile_size);
266265
m_context.Flush(0);
267266
}

App/Utils/shader_manager.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ THE SOFTWARE.
2424

2525
#ifdef __APPLE__
2626
#include <OpenCL/OpenCL.h>
27-
#include <OpenGL/OpenGL.h>
28-
#include <GLUT/GLUT.h>
27+
#include <OpenGL/gl3.h>
2928
#elif WIN32
3029
#define NOMINMAX
3130
#include <Windows.h>

App/main.cpp

Lines changed: 64 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,21 @@ THE SOFTWARE.
2323

2424
#ifdef __APPLE__
2525
#include <OpenCL/OpenCL.h>
26-
#include <OpenGL/OpenGL.h>
26+
// #define GLFW_INCLUDE_GL3
27+
// #define GLFW_NO_GLU
28+
//#include "GLFW/glfw3.h"
2729
#elif WIN32
2830
#define NOMINMAX
2931
#include <Windows.h>
3032
#include "GL/glew.h"
33+
#include "GLFW/glfw3.h"
3134
#else
3235
#include <CL/cl.h>
3336
#include <GL/glew.h>
3437
#include <GL/glx.h>
38+
#include "GLFW/glfw3.h"
3539
#endif
3640

37-
#include "GLFW/glfw3.h"
3841
#include "ImGUI/imgui.h"
3942
#include "ImGUI/imgui_impl_glfw_gl3.h"
4043

@@ -97,6 +100,7 @@ std::unique_ptr<Baikal::PerspectiveCamera> g_camera;
97100
GLuint g_vertex_buffer;
98101
GLuint g_index_buffer;
99102
GLuint g_texture;
103+
GLuint g_vao;
100104

101105
int g_window_width = 512;
102106
int g_window_height = 512;
@@ -131,6 +135,8 @@ Baikal::Renderer::OutputType g_ouput_type = Baikal::Renderer::OutputType::kColor
131135

132136
using namespace tinyobj;
133137

138+
#define CHECK_GL_ERROR assert(glGetError() == 0)
139+
134140

135141
struct OutputData
136142
{
@@ -192,43 +198,50 @@ void Render(GLFWwindow* window)
192198
try
193199
{
194200
{
195-
glDisable(GL_DEPTH_TEST);
196-
glViewport(0, 0, g_window_width, g_window_height);
201+
int w, h;
202+
glfwGetFramebufferSize(window, &w, &h);CHECK_GL_ERROR;
203+
glDisable(GL_DEPTH_TEST);CHECK_GL_ERROR;
204+
glViewport(0, 0, w, h);CHECK_GL_ERROR;
205+
197206

198-
glClear(GL_COLOR_BUFFER_BIT);
207+
glClear(GL_COLOR_BUFFER_BIT);CHECK_GL_ERROR;
208+
glBindVertexArray(g_vao);CHECK_GL_ERROR;
209+
//glEnableClientState(GL_VERTEX_ARRAY);CHECK_GL_ERROR;
210+
211+
199212

200-
glBindBuffer(GL_ARRAY_BUFFER, g_vertex_buffer);
201-
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, g_index_buffer);
202213

203214
GLuint program = g_shader_manager->GetProgram("../App/GLSL/simple");
204-
glUseProgram(program);
215+
glUseProgram(program);CHECK_GL_ERROR;
205216

206217
GLuint texloc = glGetUniformLocation(program, "g_Texture");
207218
assert(texloc >= 0);
208219

209-
glUniform1i(texloc, 0);
220+
glUniform1i(texloc, 0);CHECK_GL_ERROR;
210221

211-
glActiveTexture(GL_TEXTURE0);
212-
glBindTexture(GL_TEXTURE_2D, g_texture);
222+
glActiveTexture(GL_TEXTURE0);CHECK_GL_ERROR;
223+
glBindTexture(GL_TEXTURE_2D, g_texture);CHECK_GL_ERROR;
213224

214-
GLuint position_attr = glGetAttribLocation(program, "inPosition");
215-
GLuint texcoord_attr = glGetAttribLocation(program, "inTexcoord");
216-
217-
glVertexAttribPointer(position_attr, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 5, 0);
218-
glVertexAttribPointer(texcoord_attr, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 5, (void*)(sizeof(float) * 3));
219-
220-
glEnableVertexAttribArray(position_attr);
221-
glEnableVertexAttribArray(texcoord_attr);
225+
226+
glEnableVertexAttribArray(0);CHECK_GL_ERROR;
227+
glEnableVertexAttribArray(1);CHECK_GL_ERROR;
228+
229+
glBindBuffer(GL_ARRAY_BUFFER, g_vertex_buffer);CHECK_GL_ERROR;
230+
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, g_index_buffer);CHECK_GL_ERROR;
222231

232+
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 5, 0);CHECK_GL_ERROR;
233+
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 5, (void*)(sizeof(float) * 3));CHECK_GL_ERROR;
223234
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, nullptr);
224235

225-
glDisableVertexAttribArray(texcoord_attr);
226-
glBindTexture(GL_TEXTURE_2D, 0);
227-
glBindBuffer(GL_ARRAY_BUFFER, 0);
228-
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
229-
glUseProgram(0);
236+
glDisableVertexAttribArray(0);CHECK_GL_ERROR;
237+
glDisableVertexAttribArray(1);CHECK_GL_ERROR;
238+
glBindTexture(GL_TEXTURE_2D, 0);CHECK_GL_ERROR;
239+
glBindBuffer(GL_ARRAY_BUFFER, 0);CHECK_GL_ERROR;
240+
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);CHECK_GL_ERROR;
241+
glUseProgram(0);CHECK_GL_ERROR;
242+
glBindVertexArray(0);
230243

231-
glFinish();
244+
glFinish();CHECK_GL_ERROR;
232245
}
233246
}
234247
catch (std::runtime_error& e)
@@ -242,17 +255,17 @@ void InitGraphics()
242255
{
243256
g_shader_manager.reset(new ShaderManager());
244257

245-
glClearColor(0.0, 0.0, 0.0, 0.0);
246-
glCullFace(GL_NONE);
247-
glDisable(GL_DEPTH_TEST);
248-
glEnable(GL_TEXTURE_2D);
258+
glClearColor(0.0, 0.5, 0.0, 0.0);CHECK_GL_ERROR;
259+
glDisable(GL_DEPTH_TEST);CHECK_GL_ERROR;
249260

250-
glGenBuffers(1, &g_vertex_buffer);
251-
glGenBuffers(1, &g_index_buffer);
261+
glGenBuffers(1, &g_vertex_buffer);CHECK_GL_ERROR;
262+
glGenBuffers(1, &g_index_buffer);CHECK_GL_ERROR;
263+
264+
glGenVertexArrays(1, &g_vao);CHECK_GL_ERROR;
252265

253266
// create Vertex buffer
254-
glBindBuffer(GL_ARRAY_BUFFER, g_vertex_buffer);
255-
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, g_index_buffer);
267+
glBindBuffer(GL_ARRAY_BUFFER, g_vertex_buffer);CHECK_GL_ERROR;
268+
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, g_index_buffer);CHECK_GL_ERROR;
256269

257270
float quad_vdata[] =
258271
{
@@ -269,21 +282,21 @@ void InitGraphics()
269282
};
270283

271284
// fill data
272-
glBufferData(GL_ARRAY_BUFFER, sizeof(quad_vdata), quad_vdata, GL_STATIC_DRAW);
273-
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(quad_idata), quad_idata, GL_STATIC_DRAW);
285+
glBufferData(GL_ARRAY_BUFFER, sizeof(quad_vdata), quad_vdata, GL_STATIC_DRAW);CHECK_GL_ERROR;
286+
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(quad_idata), quad_idata, GL_STATIC_DRAW);CHECK_GL_ERROR;
274287

275-
glBindBuffer(GL_ARRAY_BUFFER, 0);
276-
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
288+
glBindBuffer(GL_ARRAY_BUFFER, 0);CHECK_GL_ERROR;
289+
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);CHECK_GL_ERROR;
277290

278291

279-
glGenTextures(1, &g_texture);
280-
glBindTexture(GL_TEXTURE_2D, g_texture);
281-
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
282-
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
292+
glGenTextures(1, &g_texture);CHECK_GL_ERROR;
293+
glBindTexture(GL_TEXTURE_2D, g_texture);CHECK_GL_ERROR;
294+
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);CHECK_GL_ERROR;
295+
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);CHECK_GL_ERROR;
283296

284-
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, g_window_width, g_window_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
297+
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, g_window_width, g_window_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);CHECK_GL_ERROR;
285298

286-
glBindTexture(GL_TEXTURE_2D, 0);
299+
glBindTexture(GL_TEXTURE_2D, 0);CHECK_GL_ERROR;
287300
}
288301

289302
void InitCl()
@@ -1070,20 +1083,20 @@ int main(int argc, char * argv[])
10701083
// Initialize GLFW
10711084
{
10721085
auto err = glfwInit();
1073-
if (err != GLFW_TRUE)
1086+
if (err != GL_TRUE)
10741087
{
10751088
std::cout << "GLFW initialization failed\n";
10761089
return -1;
10771090
}
10781091
}
10791092
// Setup window
1080-
// glfwSetErrorCallback(OnError);
1081-
// glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
1082-
// glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
1083-
// glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
1084-
//#if __APPLE__
1085-
// glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
1086-
//#endif
1093+
glfwSetErrorCallback(OnError);
1094+
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
1095+
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
1096+
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
1097+
#if __APPLE__
1098+
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
1099+
#endif
10871100

10881101
// GLUT Window Initialization:
10891102
GLFWwindow* window = glfwCreateWindow(g_window_width, g_window_height, "Baikal standalone demo", nullptr, nullptr);

0 commit comments

Comments
 (0)