# HG changeset patch # User Benjamin Golinvaux # Date 1556633268 -7200 # Node ID e3f21a265be505e6728af2868fde5e2ab9aff4f4 # Parent 0c4c0693b97cf5793e6b0b621f2c6cdb5288c0ed Added version directive to GLSL shader code + glew init function in sample code AND commented-out glew init function in StoneInitialize diff -r 0c4c0693b97c -r e3f21a265be5 Framework/Scene2D/Internals/OpenGLColorTextureProgram.cpp --- a/Framework/Scene2D/Internals/OpenGLColorTextureProgram.cpp Tue Apr 30 09:17:45 2019 +0200 +++ b/Framework/Scene2D/Internals/OpenGLColorTextureProgram.cpp Tue Apr 30 16:07:48 2019 +0200 @@ -20,9 +20,10 @@ #include "OpenGLColorTextureProgram.h" - +#include "OpenGLShaderVersionDirective.h" static const char* FRAGMENT_SHADER = + ORTHANC_STONE_OPENGL_SHADER_VERSION_DIRECTIVE "uniform sampler2D u_texture; \n" "varying vec2 v_texcoord; \n" "void main() \n" diff -r 0c4c0693b97c -r e3f21a265be5 Framework/Scene2D/Internals/OpenGLFloatTextureProgram.cpp --- a/Framework/Scene2D/Internals/OpenGLFloatTextureProgram.cpp Tue Apr 30 09:17:45 2019 +0200 +++ b/Framework/Scene2D/Internals/OpenGLFloatTextureProgram.cpp Tue Apr 30 16:07:48 2019 +0200 @@ -20,6 +20,7 @@ #include "OpenGLFloatTextureProgram.h" +#include "OpenGLShaderVersionDirective.h" #include #include @@ -27,6 +28,7 @@ static const char* FRAGMENT_SHADER = + ORTHANC_STONE_OPENGL_SHADER_VERSION_DIRECTIVE "uniform float u_offset; \n" "uniform float u_slope; \n" "uniform float u_windowCenter; \n" diff -r 0c4c0693b97c -r e3f21a265be5 Framework/Scene2D/Internals/OpenGLLinesProgram.cpp --- a/Framework/Scene2D/Internals/OpenGLLinesProgram.cpp Tue Apr 30 09:17:45 2019 +0200 +++ b/Framework/Scene2D/Internals/OpenGLLinesProgram.cpp Tue Apr 30 16:07:48 2019 +0200 @@ -20,6 +20,7 @@ #include "OpenGLLinesProgram.h" +#include "OpenGLShaderVersionDirective.h" #include @@ -29,6 +30,7 @@ static const char* VERTEX_SHADER = + ORTHANC_STONE_OPENGL_SHADER_VERSION_DIRECTIVE "attribute vec2 a_miter_direction; \n" "attribute vec4 a_position; \n" "uniform float u_thickness; \n" @@ -42,6 +44,7 @@ static const char* FRAGMENT_SHADER = + ORTHANC_STONE_OPENGL_SHADER_VERSION_DIRECTIVE "uniform bool u_antialiasing; \n" "uniform float u_antialiasing_start; \n" "uniform vec3 u_color; \n" diff -r 0c4c0693b97c -r e3f21a265be5 Framework/Scene2D/Internals/OpenGLShaderVersionDirective.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Framework/Scene2D/Internals/OpenGLShaderVersionDirective.h Tue Apr 30 16:07:48 2019 +0200 @@ -0,0 +1,3 @@ +#pragma once + +#define ORTHANC_STONE_OPENGL_SHADER_VERSION_DIRECTIVE "#version 110 core \n" \ No newline at end of file diff -r 0c4c0693b97c -r e3f21a265be5 Framework/Scene2D/Internals/OpenGLTextProgram.cpp --- a/Framework/Scene2D/Internals/OpenGLTextProgram.cpp Tue Apr 30 09:17:45 2019 +0200 +++ b/Framework/Scene2D/Internals/OpenGLTextProgram.cpp Tue Apr 30 16:07:48 2019 +0200 @@ -20,6 +20,7 @@ #include "OpenGLTextProgram.h" +#include "OpenGLShaderVersionDirective.h" #include "../../Fonts/OpenGLTextCoordinates.h" @@ -29,6 +30,7 @@ static const unsigned int COMPONENTS = 2; static const char* VERTEX_SHADER = + ORTHANC_STONE_OPENGL_SHADER_VERSION_DIRECTIVE "attribute vec2 a_texcoord; \n" "attribute vec4 a_position; \n" "uniform mat4 u_matrix; \n" @@ -40,6 +42,7 @@ "}"; static const char* FRAGMENT_SHADER = + ORTHANC_STONE_OPENGL_SHADER_VERSION_DIRECTIVE "uniform sampler2D u_texture; \n" "uniform vec3 u_color; \n" "varying vec2 v_texcoord; \n" diff -r 0c4c0693b97c -r e3f21a265be5 Framework/Scene2D/Internals/OpenGLTextureProgram.cpp --- a/Framework/Scene2D/Internals/OpenGLTextureProgram.cpp Tue Apr 30 09:17:45 2019 +0200 +++ b/Framework/Scene2D/Internals/OpenGLTextureProgram.cpp Tue Apr 30 16:07:48 2019 +0200 @@ -20,11 +20,13 @@ #include "OpenGLTextureProgram.h" +#include "OpenGLShaderVersionDirective.h" static const unsigned int COMPONENTS = 2; static const unsigned int COUNT = 6; // 2 triangles in 2D static const char* VERTEX_SHADER = + ORTHANC_STONE_OPENGL_SHADER_VERSION_DIRECTIVE "attribute vec2 a_texcoord; \n" "attribute vec4 a_position; \n" "uniform mat4 u_matrix; \n" diff -r 0c4c0693b97c -r e3f21a265be5 Framework/StoneInitialization.cpp --- a/Framework/StoneInitialization.cpp Tue Apr 30 09:17:45 2019 +0200 +++ b/Framework/StoneInitialization.cpp Tue Apr 30 16:07:48 2019 +0200 @@ -21,6 +21,7 @@ #include "StoneInitialization.h" +#include #include #if !defined(ORTHANC_ENABLE_SDL) @@ -32,6 +33,9 @@ # include "../Applications/Sdl/SdlWindow.h" #endif +#if ORTHANC_ENABLE_OPENGL == 1 +# include "GL/glew.h" +#endif namespace OrthancStone { @@ -39,6 +43,31 @@ { Orthanc::Logging::Initialize(); +#if 0 +#if ORTHANC_ENABLE_OPENGL == 1 + glEnable(GL_DEBUG_OUTPUT); + GLenum err = glewInit(); + if (GLEW_OK != err) + { + const char* error = + reinterpret_cast(glewGetErrorString(err)); + if (strcmp(error, "Missing GL version") != 0) + { + std::stringstream msg; + msg << "Error while initializing OpenGL through GLEW: " << error; + throw Orthanc::OrthancException( + Orthanc::ErrorCode_InternalError,msg.str()); + } + } + { + std::stringstream message; + message << "Using GLEW version " << reinterpret_cast( + glewGetString(GLEW_VERSION)); + LOG(INFO) << "Using GLEW version " << message.str(); + } +#endif +#endif + #if ORTHANC_ENABLE_SDL == 1 OrthancStone::SdlWindow::GlobalInitialize(); #endif diff -r 0c4c0693b97c -r e3f21a265be5 README.md --- a/README.md Tue Apr 30 09:17:45 2019 +0200 +++ b/README.md Tue Apr 30 16:07:48 2019 +0200 @@ -236,9 +236,11 @@ url="https://doi.org/10.1007/s10278-018-0082-y" } -Various notes to be deleted +Various notes to be sorted --------------------------- -class BaseCommand : public ICommand +How to build the newest (2019-04-29) SDL samples under Windows, *inside* a +folder that is sibling to the orthanc-stone folder: -RadiographySceneCommand -GenericNoArgCommand +``` +cmake -G "Visual Studio 15 2017 Win64" -DMSVC_MULTIPLE_PROCESSES=ON -DENABLE_OPENGL=ON -DSTATIC_BUILD=ON -DOPENSSL_NO_CAPIENG=ON -DORTHANC_FRAMEWORK_SOURCE=path -DORTHANC_FRAMEWORK_ROOT="$($pwd)\..\orthanc" -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON ../orthanc-stone/Samples/Sdl +``` diff -r 0c4c0693b97c -r e3f21a265be5 Samples/Sdl/BasicScene.cpp --- a/Samples/Sdl/BasicScene.cpp Tue Apr 30 09:17:45 2019 +0200 +++ b/Samples/Sdl/BasicScene.cpp Tue Apr 30 16:07:48 2019 +0200 @@ -274,9 +274,18 @@ void Run(OrthancStone::Scene2D& scene) { + OrthancStone::SdlOpenGLWindow window("Hello", 1024, 768); + + GLenum err = glewInit(); + if (GLEW_OK != err) + { + throw std::runtime_error("GLEW_OK != err"); + } + scene.FitContent(window.GetCanvasWidth(), window.GetCanvasHeight()); + glEnable(GL_DEBUG_OUTPUT); glDebugMessageCallback(OpenGLMessageCallback, 0 );