diff --git a/MshViewer/Header/OpenGLController.h b/MshViewer/Header/OpenGLController.h index 94c0104..fcfce57 100644 --- a/MshViewer/Header/OpenGLController.h +++ b/MshViewer/Header/OpenGLController.h @@ -10,7 +10,7 @@ #define VERTEX_INDEX_UV 1 #define VERTEX_COMPONENTS_XYZ 3 -#define VERTEX_COMPONENTS_UV 4 +#define VERTEX_COMPONENTS_UV 2 #define VERTEX_SIZE_XYZ (sizeof(float) * VERTEX_COMPONENTS_XYZ) #define VERTEX_SIZE_UV (sizeof(float) * VERTEX_COMPONENTS_UV) @@ -39,49 +39,49 @@ private: // member private: // window - GLFWwindow* pWindow; - std::string sWindowName; - int iWidth; - int iHeight; + GLFWwindow* pWindow = NULL; + std::string sWindowName = "MeshViewer 2.0 pre-alpha"; + int iWidth = 640; + int iHeight = 480; // init glfw - int iOglMajorVersion; - int iOglMinorVersion; - int iAntiAliasingLevel; + int iOglMajorVersion = 4; + int iOglMinorVersion = 5; + int iAntiAliasingLevel = 4; -// IDs ========================== +// IDs ==================================== //object data - GLuint gluiVertexArrayID; - GLuint gluiInstanceBufferID; - GLuint gluiVertexBufferID; + GLuint gluiVertexArrayID = 0; + GLuint gluiVertexBufferID = 0; + GLuint gluiInstanceBufferID = 0; //obj color - GLuint gluiTextureID; - GLuint gluiShaderPrgmID; - GLuint gluiSamplerID; + GLuint gluiTextureID = 0; + GLuint gluiShaderPrgmID = 0; + GLuint gluiSamplerID = 0; //obj transformation - GLuint gluiMatrixID; -// ============================== + GLuint gluiMatrixID = 0; +// ======================================== // data std::vector vModels; -// transformation =============== +// transformation ========================= //values - float fRotationX; - float fRotationY; - float fRotationZ; - double dTranslationX; - double dTranslationY; - double dTranslationZ; + float fRotationX = 0; + float fRotationY = 0; + float fRotationZ = 0; + double dTranslationX = 0; + double dTranslationY = 0; + double dTranslationZ = 5; -// ============================== +// ======================================== // camera - float fFOV; - float fMinView; - float fMaxView; + float fFOV = 45.0f; + float fMinView = 0.1f; + float fMaxView = 100.0f; //////////////////////////////////////////////////////////////////////////////////////////// @@ -89,7 +89,6 @@ private: private: void processInit(); - void initDefault(); void startGLFW(); void createWindow(); void startGLEW(); diff --git a/MshViewer/Shader/VertexTextureShader.mv2shdr b/MshViewer/Shader/VertexTextureShader.mv2shdr index f867917..ada5b7e 100644 --- a/MshViewer/Shader/VertexTextureShader.mv2shdr +++ b/MshViewer/Shader/VertexTextureShader.mv2shdr @@ -14,7 +14,7 @@ uniform mat4 MVP; void main(){ // Output position of the vertex, in clip space : MVP * position - gl_Position = MVP * vec4(vertexPosition_modelspace,1); + gl_Position = MVP * vec4(vertexPosition_modelspace, 1); UV = vertexUV; diff --git a/MshViewer/Source/OpenGlController.cpp b/MshViewer/Source/OpenGlController.cpp index 5f79077..95185f7 100644 --- a/MshViewer/Source/OpenGlController.cpp +++ b/MshViewer/Source/OpenGlController.cpp @@ -50,8 +50,7 @@ OpenGLController::~OpenGLController() OpenGLController::OpenGLController(int oglMajor, int oglMinor) { - // init variables - initDefault(); + // adjust ogl version optional iOglMajorVersion = oglMajor; iOglMinorVersion = oglMinor; @@ -62,34 +61,6 @@ OpenGLController::OpenGLController(int oglMajor, int oglMinor) ///////////////////////////////////////////////////////////////////////// // private functions -void OpenGLController::initDefault() -{ - pWindow = NULL; - sWindowName = "MeshViewer 2.0 pre-alpha"; - iWidth = 640; - iHeight = 480; - - iAntiAliasingLevel = 4; - - gluiInstanceBufferID = 0; - gluiTextureID = 0; - gluiShaderPrgmID = 0; - gluiSamplerID = 0; - - gluiMatrixID = 0; - - fRotationX = 0; - fRotationY = 0; - fRotationZ = 0; - dTranslationX = 0; - dTranslationY = 0; - dTranslationZ = 5; - - fFOV = 45.0f; - fMinView = 0.1f; - fMaxView = 100.0f; -} - void OpenGLController::processInit() { startGLFW(); @@ -159,10 +130,10 @@ void OpenGLController::createWindow() if (pWindow == NULL) { std::string message = "Your GPU does not support OpenGL "; - message += iOglMajorVersion; + message += std::to_string(iOglMajorVersion); message += "."; - message += iOglMinorVersion; - message += "\nTry to use older version"; + message += std::to_string(iOglMinorVersion); + message += "\nTry to use an other version"; MessageBox(NULL, message.c_str(), "MeshViewer 2.0 Error", MB_OK | MB_ICONERROR); diff --git a/MshViewer/main.cpp b/MshViewer/main.cpp index c6984d7..149bd44 100644 --- a/MshViewer/main.cpp +++ b/MshViewer/main.cpp @@ -9,6 +9,18 @@ int main(int argc, char** argv) { + OpenGLController* scene = NULL; + + if (argc == 3) + { + int major = atoi(argv[1]); + int minor = atoi(argv[2]); + scene = OpenGLController::getInstance(major, minor); + } + else + scene = OpenGLController::getInstance(); + + goto openGL; try { @@ -26,8 +38,6 @@ int main(int argc, char** argv) openGL: - OpenGLController *scene = OpenGLController::getInstance(); - scene->loadMsh("..\\Release\\Msh\\cubeTrans.msh"); do {