Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,18 @@ target_include_directories("${CMAKE_PROJECT_NAME}" PUBLIC "${CMAKE_CURRENT_SOURC
target_link_libraries("${CMAKE_PROJECT_NAME}" PRIVATE glm glfw
glad stb_image stb_truetype imgui)

#--------------------------------------------------------------#
# Now You can use relative path also for resources files #
#--------------------------------------------------------------#

# To solve relative path working problem
set(RESOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/resources")

add_custom_command(TARGET "${CMAKE_PROJECT_NAME}" POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${RESOURCE_DIR}"
"$<TARGET_FILE_DIR:${CMAKE_PROJECT_NAME}>/resources"
)

# Use relative path for runtime
target_compile_definitions("${CMAKE_PROJECT_NAME}" PUBLIC RESOURCES_PATH="./resources/")
36 changes: 27 additions & 9 deletions include/demoShaderLoader.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,37 @@ struct Shader
{
GLuint id = 0;

bool loadShaderProgramFromData(const char *vertexShaderData, const char *fragmentShaderData);
bool loadShaderProgramFromData(const char *vertexShaderData,
const char *geometryShaderData, const char *fragmentShaderData);
bool b_LoadShaderProgramFromData
(
const char* vertex_shader_data,
const char* fragment_shader_data
);

bool loadShaderProgramFromFile(const char *vertexShader, const char *fragmentShader);
bool loadShaderProgramFromFile(const char *vertexShader,
const char *geometryShader, const char *fragmentShader);
bool b_LoadShaderProgramFromData
(
const char* vertex_shader_data,
const char* geometry_shader_data,
const char* fragment_shader_data
);

void bind();
bool b_loadShaderProgramFromFile
(
const char* vertex_shader,
const char* fragment_shader
);

bool b_loadShaderProgramFromFile
(
const char* vertex_shader,
const char* geometry_shader,
const char* fragment_shader
);

void bind() const;

void clear();

GLint getUniform(const char *name);
GLint GetUniform(const char* name) const;
};

GLint getUniform(GLuint shaderId, const char *name);
GLint GetUniform(GLuint shader_id, const char* name);
7 changes: 7 additions & 0 deletions resources/Sample.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#version 460 core
in vec3 vColor;
out vec4 FragColor;
void main()
{
FragColor = vec4(vColor, 1.0);
}
9 changes: 9 additions & 0 deletions resources/Sample.vert
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#version 460 core
layout(location = 0) in vec2 aPos;
layout(location = 1) in vec3 aColor;
out vec3 vColor;
void main()
{
gl_Position = vec4(aPos, 0.0, 1.0);
vColor = aColor;
}
11 changes: 0 additions & 11 deletions resources/fragment.frag

This file was deleted.

10 changes: 0 additions & 10 deletions resources/vertex.vert

This file was deleted.

Loading