Sloth loves Chunk!
This commit is contained in:
		
							
								
								
									
										67
									
								
								SQCSim2021/tool.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								SQCSim2021/tool.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
			
		||||
#include "tool.h"
 | 
			
		||||
#include "define.h"
 | 
			
		||||
#include <cassert>
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <fstream>
 | 
			
		||||
 | 
			
		||||
bool Tool::LoadTextFile(const std::string& filename, std::string& buffer)
 | 
			
		||||
{
 | 
			
		||||
    std::ifstream f(filename.c_str(), std::ios::binary);
 | 
			
		||||
    if(!f.is_open())
 | 
			
		||||
        return false;
 | 
			
		||||
 | 
			
		||||
    f.seekg(0, std::ios::end);
 | 
			
		||||
    unsigned int len = f.tellg();
 | 
			
		||||
    f.seekg(0, std::ios::beg);
 | 
			
		||||
 | 
			
		||||
    char* tmp = new char[len + 1];
 | 
			
		||||
 | 
			
		||||
    f.read(tmp, len);
 | 
			
		||||
    f.close();
 | 
			
		||||
 | 
			
		||||
    tmp[len] = 0;
 | 
			
		||||
    buffer = tmp;
 | 
			
		||||
    delete [] tmp;
 | 
			
		||||
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Tool::CheckGLError(const char* file, int line)
 | 
			
		||||
{
 | 
			
		||||
    GLuint err = glGetError();
 | 
			
		||||
    if (err != GL_NO_ERROR)	
 | 
			
		||||
    {
 | 
			
		||||
        std::cerr << "Opengl error before " << file << "[" << line << "]:" << std::hex << err << "(";
 | 
			
		||||
 | 
			
		||||
        switch(err)
 | 
			
		||||
        {
 | 
			
		||||
            case GL_INVALID_ENUM:
 | 
			
		||||
                std::cerr << "GL_INVALID_ENUM";
 | 
			
		||||
                break;
 | 
			
		||||
            case GL_INVALID_VALUE:
 | 
			
		||||
                std::cerr << "GL_INVALID_VALUE";
 | 
			
		||||
                break;
 | 
			
		||||
            case GL_INVALID_OPERATION:
 | 
			
		||||
                std::cerr << "GL_INVALID_OPERATION";
 | 
			
		||||
                break;
 | 
			
		||||
            case GL_STACK_OVERFLOW:
 | 
			
		||||
                std::cerr << "GL_STACK_OVERFLOW";
 | 
			
		||||
                break;
 | 
			
		||||
            case GL_STACK_UNDERFLOW:
 | 
			
		||||
                std::cerr << "GL_STACK_UNDERFLOW";
 | 
			
		||||
                break;
 | 
			
		||||
            case GL_OUT_OF_MEMORY:
 | 
			
		||||
                std::cerr << "GL_OUT_OF_MEMORY";
 | 
			
		||||
                break;
 | 
			
		||||
            case GL_TABLE_TOO_LARGE:
 | 
			
		||||
                std::cerr << "GL_TABLE_TOO_LARGE";
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                std::cerr << "unknown";
 | 
			
		||||
        }
 | 
			
		||||
        std::cerr << ")" << std::endl;
 | 
			
		||||
        std::cerr << "ATTENTION: this error might come from anywhere in the code since the previous call to CHECK_GL_ERROR" << std::endl;
 | 
			
		||||
        exit(1);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user