Commit 76be0e62 authored by Baldur Paulwitz's avatar Baldur Paulwitz

zwischenstand glCalls

parent fa146297
 glad.c
glCalls.cpp
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(28,33): error C2440: "=": "void *" kann nicht in "char *" konvertiert werden
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(28,17): message : Konvertierung von "void*" in Zeiger auf nicht-"void" erfordert eine explizite Typumwandlung
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(20,1): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(208): message : Siehe Deklaration von "fopen"
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(94,68): error C2664: "char *readShaderFromFile(char *)" : Konvertierung von Argument 1 von "const char [19]" in "char *" nicht möglich
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(94,48): message : Bei der Konvertierung von Zeichenfolgenliteral geht der Konstantenqualifizierer verloren (siehe /Zc:strictStrings)
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(15,7): message : Siehe Deklaration von "readShaderFromFile"
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(96,91): error C2664: "GLuint compileShader(GLenum,const char *,char *)" : Konvertierung von Argument 3 von "const char [14]" in "char *" nicht möglich
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(96,76): message : Bei der Konvertierung von Zeichenfolgenliteral geht der Konstantenqualifizierer verloren (siehe /Zc:strictStrings)
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(38,8): message : Siehe Deklaration von "compileShader"
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(110,72): error C2664: "char *readShaderFromFile(char *)" : Konvertierung von Argument 1 von "const char [21]" in "char *" nicht möglich
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(110,50): message : Bei der Konvertierung von Zeichenfolgenliteral geht der Konstantenqualifizierer verloren (siehe /Zc:strictStrings)
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(15,7): message : Siehe Deklaration von "readShaderFromFile"
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(112,99): error C2664: "GLuint compileShader(GLenum,const char *,char *)" : Konvertierung von Argument 3 von "const char [16]" in "char *" nicht möglich
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(112,82): message : Bei der Konvertierung von Zeichenfolgenliteral geht der Konstantenqualifizierer verloren (siehe /Zc:strictStrings)
mm_raytracer.cpp
Code wird generiert...
C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\src\glCalls.cpp(38,8): message : Siehe Deklaration von "compileShader"
 glCalls.cpp
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(212,22): error C2039: "angleXLoc": Ist kein Element von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\include\glCalls.h(18): message : Siehe Deklaration von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(214,2): error C2039: "angleYLoc": Ist kein Element von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\include\glCalls.h(18): message : Siehe Deklaration von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(216,22): error C2039: "angleYLoc": Ist kein Element von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\include\glCalls.h(18): message : Siehe Deklaration von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(218,2): error C2039: "angleYLoc": Ist kein Element von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\include\glCalls.h(18): message : Siehe Deklaration von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(222,19): error C2039: "angleY": Ist kein Element von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\include\glCalls.h(18): message : Siehe Deklaration von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(223,19): error C2039: "angleX": Ist kein Element von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\include\glCalls.h(18): message : Siehe Deklaration von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(248,97): error C2039: "color": Ist kein Element von "VertexData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\include\glCalls.h(29): message : Siehe Deklaration von "VertexData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(248,97): error C2618: ungültiger Memberbezeichner in offsetof
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(248,97): message : offsetof besitzt eine vordefinierte Bedeutung. Verwenden Sie "/Zc:offsetof-", um die alte, nicht konforme Definition wiederherzustellen.
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(300,33): error C2039: "angleYLoc": Ist kein Element von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\include\glCalls.h(18): message : Siehe Deklaration von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(300,51): error C2039: "angleY": Ist kein Element von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\include\glCalls.h(18): message : Siehe Deklaration von "UserData"
C:\Users\eleph\Documents\GitHub\mm_raytracer\src\glCalls.cpp(300,51): error C2198: "PFNGLUNIFORM1FPROC": Nicht genügend Argumente für Aufruf.
B^C:\USERS\ELEPH\SOURCE\REPOS\MM_RAYTRACER\MM_RAYTRACER\MM_RAYTRACER.CPP
......
B^C:\USERS\ELEPH\DOCUMENTS\GITHUB\MM_RAYTRACER\SRC\GLAD.C
......
B^C:\USERS\ELEPH\DOCUMENTS\GITHUB\MM_RAYTRACER\SRC\GLAD.C
......
#TargetFrameworkVersion=v4.0:PlatformToolSet=v142:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0
Debug|Win32|C:\Users\brian.DESKTOP-DB2IIF0\Desktop\Projects\mm_raytracer\VisualStudio\|
Debug|Win32|C:\Users\eleph\Documents\GitHub\mm_raytracer\VisualStudio\|
......@@ -3,6 +3,7 @@
#include <iostream>
#include "../../include/glad/glad.h"
#include <GLFW/glfw3.h>
#include <fstream>
int main(int argc, char const* argv[])
{
......
......@@ -20,12 +20,7 @@ typedef struct{
GLuint vertexBufferObject;
GLuint vertexArrayObject;
GLuint vertexDataCount;
//todo
double time;
GLfloat angleY;
GLint angleYLoc;
GLfloat angleX;
GLint angleXLoc;
GLint height;
GLint width;
} UserData;
......@@ -33,7 +28,7 @@ typedef struct{
typedef struct
{
GLfloat position[3];
GLubyte color[3];
//TODO coordinates for texture
} VertexData;
GLboolean init(GLFWwindow* window);
......
#include "../include/glCalls.h"
#include <assert.h>
#include <stdlib.h>
#include <assert.h>
#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
void checkError(const char* errorText){
GLenum error = glGetError();
......@@ -12,7 +14,32 @@ void checkError(const char* errorText){
}
}
char* readShaderFromFile(char* filename) {
char* readShaderFromFile(std::string filename) {
char* result;
std::stringstream shaderCodeStream;
std::string codeLine;
std::ifstream shaderFile;
shaderFile.open(filename);
if (shaderFile.is_open())
{
while (getline(shaderFile, codeLine))
{
//TODO not sure if '\n' is necessary
shaderCodeStream << codeLine << '\n';
}
shaderFile.close();
}
std::string shaderCode = shaderCodeStream.str();
result = new char[shaderCode.length() + 1];
strcpy_s(result, shaderCode.length() + 1, shaderCode.c_str());
return result;
//OBSOLETE
/*
FILE *fp;
long lSize;
char *buffer;
......@@ -24,18 +51,21 @@ char* readShaderFromFile(char* filename) {
lSize = ftell( fp );
rewind( fp );
/* allocate memory for entire content */
buffer = calloc( 1, lSize + 1 );
// allocate memory for entire content
buffer = new char[lSize + 1];
//old
//buffer = calloc( 1, lSize + 1 );
if ( !buffer ) fclose(fp), fputs("memory alloc fails", stderr), exit(1);
/* copy the file into the buffer */
// copy the file into the buffer
if ( 1 != fread( buffer , lSize, 1 , fp) )
fclose(fp), free(buffer), fputs("entire read fails", stderr), exit(1);
return buffer;
*/
}
GLuint compileShader(GLenum type, const char* shaderSource, char* shaderTag){
GLuint compileShader(GLenum type, const char* shaderSource, std::string shaderTag){
//shader handle
GLuint shader;
......@@ -70,7 +100,8 @@ GLuint compileShader(GLenum type, const char* shaderSource, char* shaderTag){
//get error message
glGetShaderInfoLog(shader, infoLen, NULL, errorMsg);
printf("Error compiling shader (%s): %s\n", shaderTag, errorMsg);
std::cout << "Error compiling shader " << shaderTag;
printf(": %s\n", errorMsg);
delete(errorMsg);
}
......@@ -89,7 +120,7 @@ GLboolean init(GLFWwindow* window){
//allocate memory for user data
UserData* userData = new UserData;
glfwSetWindowUserPointer(window, (void*)userData);
//Create the vertex shader:
char* vertexShaderSource = readShaderFromFile("shader/vertex.glsl");
......@@ -177,19 +208,8 @@ GLboolean init(GLFWwindow* window){
// store program object in context
userData->programObject = programObject;
//get uniform locations
userData->angleXLoc = glGetUniformLocation(userData->programObject, "angle_x");
checkError("glGetUniformLocation (angle_x)");
assert(userData->angleYLoc >= 0);
userData->angleYLoc = glGetUniformLocation(userData->programObject, "angle_y");
checkError("glGetUniformLocation (angle_y)");
assert(userData->angleYLoc >= 0);
//initialize the modell
userData->time = glfwGetTime();
userData->angleY = 0.0f;
userData->angleX = 0.0f;
// create and bind dummy vao... it is needed in desktop OpenGL
glGenVertexArrays(1, &(userData->vertexArrayObject));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment