Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "include/glad/glad.h"
- #include "GLFW/glfw3.h"
- #include "canned_glfw_window.hpp"
- #include <ios>
- #include <iostream>
- #include <exception>
- #include <stdexcept>
- #include <string_view>
- #include <string>
- #include <fstream>
- int GLFWWindow::viewport_x = 0;
- int GLFWWindow::viewport_y = 0;
- void error_callback(int err_code, const char *err_msg) {
- throw GLFWInitFailed(err_code, err_msg);
- }
- void framebuffer_size_callback(GLFWwindow *window, int width, int height) {
- glViewport(GLFWWindow::viewport_x, GLFWWindow::viewport_y, width, height);
- }
- GLFWWindow::GLFWWindow(size_t width, size_t height, const char *title, GLFWmonitor *monitor, GLFWwindow *share,
- int version_major, int version_minor, int profile) {
- glfwSetErrorCallback(error_callback);
- glfwInit();
- glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, version_major);
- glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, version_minor);
- if (profile != 0)
- glfwWindowHint(GLFW_OPENGL_PROFILE, profile);
- window = glfwCreateWindow(width, height, title, monitor, share);
- glfwMakeContextCurrent(window);
- if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
- throw GLFWInitFailed(00000, "Failed to initialize GLAD");
- }
- }
- GLShader::GLShader(const std::string &file_location, GLenum shader_type) {
- std::ifstream file(file_location);
- std::string shader_src;
- std::string line;
- if (file.bad())
- throw std::runtime_error("Shader file not found or unaccesible");
- while (std::getline(file, line)){
- shader_src += line + "\n";
- }
- const char *c_shader_src = shader_src.c_str();
- shader_id = glCreateShader(shader_type);
- glShaderSource(shader_id, 1, &c_shader_src, NULL);
- glCompileShader(shader_id);
- glGetShaderiv(shader_id, GL_COMPILE_STATUS,&compile_status);
- }
- GL2DTexture::GL2DTexture(GLint wrap_s, GLint wrap_t, GLint min_filter, GLint mag_filter,
- GLenum target, GLint level, GLint internal_format, size_t width, size_t height,
- GLint border, GLenum format, GLenum type, const void *data) noexcept : target(target) {
- glGenTextures(1, &texture_id);
- glBindTexture(target, texture_id);
- glTexParameteri(target, GL_TEXTURE_WRAP_S, wrap_s);
- glTexParameteri(target, GL_TEXTURE_WRAP_T, wrap_t);
- glTexParameteri(target, GL_TEXTURE_MIN_FILTER, min_filter);
- glTexParameteri(target, GL_TEXTURE_MAG_FILTER, mag_filter);
- glTexImage2D(target, level, internal_format, width, height, border, format, type, data);
- glGenerateMipmap(target);
- }
Advertisement
Add Comment
Please, Sign In to add comment