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_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<Modl*> 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();

View File

@ -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;

View File

@ -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);

View File

@ -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 {