Opengl封装着色器并使用纹理填充图形

对着色器程序,VAO,VBO等进行了封装,并使用纹理其实就是贴图 来填充图形

main.cpp

#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
#include "stb_image.h"
#include "shader.h"
#include "VO.h"
void monitor(GLFWwindow* win, int W, int H) {
   
	glViewport(0, 0, W, H);
	return;
}

void Input(GLFWwindow* win) {
   
	if (glfwGetKey(win, GLFW_KEY_ESCAPE) == GLFW_PRESS) {
   
		glfwSetWindowShouldClose(win, true);
	}
	else if (glfwGetKey(win, GLFW_KEY_SPACE) == GLFW_PRESS) {
   
		// 使用线框模式绘制
		// 参数1 对所有图形使用
		// 参数2 使用线条绘制
		glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
	}
	else {
   
		// 使用线框模式绘制
		// 参数1 对所有图形使用
		// 参数2 使用填充绘制
		glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
	}
	return;
}
int main() {
   

	glfwInit();
	glfwInitHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
	glfwInitHint(GLFW_CONTEXT_VERSION_MINOR, 3);
	glfwInitHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

	GLFWwindow* win = glfwCreateWindow(800, 600, "纹理", NULL, NULL);
	glfwMakeContextCurrent(win);
	gladLoadGLLoader((GLADloadproc)glfwGetProcAddress);

	glViewport(0, 0, 800, 600);
	glfwSetFramebufferSizeCallback(win, monitor);

	float nums[] = {
   
		//     ---- 位置 ----       ---- 颜色 ----     - 纹理坐标 -
		 0.5f,  0.5f, 0.0f,   1.0f, 0.0f, 0.0f,   1.0f, 1.0f, // top right
		 0.5f, -0.5f, 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值