now you can set optional ogl version through the first 2 parameters

This commit is contained in:
Anakin 2016-11-01 14:16:18 +01:00
parent 9d35634c0c
commit bc518f58ee
4 changed files with 45 additions and 65 deletions

View File

@ -10,7 +10,7 @@
#define VERTEX_INDEX_UV 1 #define VERTEX_INDEX_UV 1
#define VERTEX_COMPONENTS_XYZ 3 #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_XYZ (sizeof(float) * VERTEX_COMPONENTS_XYZ)
#define VERTEX_SIZE_UV (sizeof(float) * VERTEX_COMPONENTS_UV) #define VERTEX_SIZE_UV (sizeof(float) * VERTEX_COMPONENTS_UV)
@ -39,49 +39,49 @@ private:
// member // member
private: private:
// window // window
GLFWwindow* pWindow; GLFWwindow* pWindow = NULL;
std::string sWindowName; std::string sWindowName = "MeshViewer 2.0 pre-alpha";
int iWidth; int iWidth = 640;
int iHeight; int iHeight = 480;
// init glfw // init glfw
int iOglMajorVersion; int iOglMajorVersion = 4;
int iOglMinorVersion; int iOglMinorVersion = 5;
int iAntiAliasingLevel; int iAntiAliasingLevel = 4;
// IDs ========================== // IDs ====================================
//object data //object data
GLuint gluiVertexArrayID; GLuint gluiVertexArrayID = 0;
GLuint gluiInstanceBufferID; GLuint gluiVertexBufferID = 0;
GLuint gluiVertexBufferID; GLuint gluiInstanceBufferID = 0;
//obj color //obj color
GLuint gluiTextureID; GLuint gluiTextureID = 0;
GLuint gluiShaderPrgmID; GLuint gluiShaderPrgmID = 0;
GLuint gluiSamplerID; GLuint gluiSamplerID = 0;
//obj transformation //obj transformation
GLuint gluiMatrixID; GLuint gluiMatrixID = 0;
// ============================== // ========================================
// data // data
std::vector<Modl*> vModels; std::vector<Modl*> vModels;
// transformation =============== // transformation =========================
//values //values
float fRotationX; float fRotationX = 0;
float fRotationY; float fRotationY = 0;
float fRotationZ; float fRotationZ = 0;
double dTranslationX; double dTranslationX = 0;
double dTranslationY; double dTranslationY = 0;
double dTranslationZ; double dTranslationZ = 5;
// ============================== // ========================================
// camera // camera
float fFOV; float fFOV = 45.0f;
float fMinView; float fMinView = 0.1f;
float fMaxView; float fMaxView = 100.0f;
//////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////
@ -89,7 +89,6 @@ private:
private: private:
void processInit(); void processInit();
void initDefault();
void startGLFW(); void startGLFW();
void createWindow(); void createWindow();
void startGLEW(); void startGLEW();

View File

@ -14,7 +14,7 @@ uniform mat4 MVP;
void main(){ void main(){
// Output position of the vertex, in clip space : MVP * position // 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; UV = vertexUV;

View File

@ -50,8 +50,7 @@ OpenGLController::~OpenGLController()
OpenGLController::OpenGLController(int oglMajor, int oglMinor) OpenGLController::OpenGLController(int oglMajor, int oglMinor)
{ {
// init variables // adjust ogl version optional
initDefault();
iOglMajorVersion = oglMajor; iOglMajorVersion = oglMajor;
iOglMinorVersion = oglMinor; iOglMinorVersion = oglMinor;
@ -62,34 +61,6 @@ OpenGLController::OpenGLController(int oglMajor, int oglMinor)
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// private functions // 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() void OpenGLController::processInit()
{ {
startGLFW(); startGLFW();
@ -159,10 +130,10 @@ void OpenGLController::createWindow()
if (pWindow == NULL) if (pWindow == NULL)
{ {
std::string message = "Your GPU does not support OpenGL "; std::string message = "Your GPU does not support OpenGL ";
message += iOglMajorVersion; message += std::to_string(iOglMajorVersion);
message += "."; message += ".";
message += iOglMinorVersion; message += std::to_string(iOglMinorVersion);
message += "\nTry to use older version"; message += "\nTry to use an other version";
MessageBox(NULL, message.c_str(), "MeshViewer 2.0 Error", MB_OK | MB_ICONERROR); MessageBox(NULL, message.c_str(), "MeshViewer 2.0 Error", MB_OK | MB_ICONERROR);

View File

@ -9,6 +9,18 @@
int main(int argc, char** argv) 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; goto openGL;
try { try {
@ -26,8 +38,6 @@ int main(int argc, char** argv)
openGL: openGL:
OpenGLController *scene = OpenGLController::getInstance();
scene->loadMsh("..\\Release\\Msh\\cubeTrans.msh"); scene->loadMsh("..\\Release\\Msh\\cubeTrans.msh");
do { do {