added textures to 2D objects
This commit is contained in:
parent
34d70154e0
commit
99566d2cee
BIN
obj/main.o
BIN
obj/main.o
Binary file not shown.
BIN
obj/menus.o
BIN
obj/menus.o
Binary file not shown.
25
src/main.c
25
src/main.c
|
@ -410,10 +410,13 @@ const char *fragmentShaderSource = "#version 330 core\n"
|
|||
|
||||
const char *vertexShaderSourceR = "#version 330 core\n"
|
||||
"layout (location = 0) in vec3 aPos;\n"
|
||||
"layout (location = 1) in vec2 aTex;\n"
|
||||
"uniform mat4 scale;\n"
|
||||
"uniform mat4 slide;\n"
|
||||
"out vec2 texCoord;\n"
|
||||
"void main() {\n"
|
||||
" gl_Position = slide * scale * vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
|
||||
" texCoord = aTex;\n"
|
||||
"}\0";
|
||||
|
||||
const char *fragmentShaderSourceR = "#version 330 core\n"
|
||||
|
@ -422,7 +425,7 @@ const char *fragmentShaderSourceR = "#version 330 core\n"
|
|||
"in vec2 texCoord;\n"
|
||||
"uniform sampler2D tex0;\n"
|
||||
"void main() {\n"
|
||||
" FragColor = u_color2;\n"
|
||||
" FragColor = texture(tex0, texCoord) * u_color2;\n"
|
||||
"}\0";
|
||||
|
||||
typedef enum file_extension {PNG, JPG, JPEG} file_extension;
|
||||
|
@ -459,7 +462,7 @@ void generate_itemTexture_2D(int id, char* filename, file_extension ext) {
|
|||
unsigned char* bytes = stbi_load(filename, &widthImg, &heightImg, &numColCh, 0);
|
||||
if(bytes == 0) {fprintf(stderr, "ERROR : cannot load texture [%s]\n", filename); exit(1);}
|
||||
glGenTextures(1, &itemTexts[id]);
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
glActiveTexture(GL_TEXTURE1);
|
||||
glBindTexture(GL_TEXTURE_2D, itemTexts[id]);
|
||||
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
|
@ -620,6 +623,7 @@ int main_alt() {
|
|||
// 32 max
|
||||
|
||||
generate_itemTexture_2D(0, "res/white.png", PNG);
|
||||
generate_itemTexture_2D(1, "res/sq_full.png", PNG);
|
||||
|
||||
printf("-----------------------------------------------------------------------------------------------\n"); fflush(stdout);
|
||||
|
||||
|
@ -664,20 +668,25 @@ int main_alt() {
|
|||
glDeleteShader(vertexShaderR);
|
||||
glDeleteShader(fragmentShaderR);
|
||||
|
||||
// rectangle VAO/VBO
|
||||
initMenus();
|
||||
|
||||
unsigned int RVBO, RVAO;
|
||||
glGenVertexArrays(1, &RVAO);
|
||||
glGenBuffers(1, &RVBO);
|
||||
// bind the Vertex Array Object first, then bind and set vertex buffer(s), and then configure vertex attributes(s).
|
||||
glBindVertexArray(RVAO);
|
||||
|
||||
// rectangle VAO/VBO
|
||||
initMenus();
|
||||
|
||||
glBindBuffer(GL_ARRAY_BUFFER, RVBO);
|
||||
glBufferData(GL_ARRAY_BUFFER, sizeof(rectDefault), rectDefault, GL_STATIC_DRAW);
|
||||
|
||||
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
|
||||
// position attribute
|
||||
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void*)0);
|
||||
glEnableVertexAttribArray(0);
|
||||
|
||||
// texture coord attribute
|
||||
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void*)(3*sizeof(float)));
|
||||
glEnableVertexAttribArray(1);
|
||||
|
||||
// note that this is allowed, the call to glVertexAttribPointer registered VBO as the vertex attribute's bound vertex buffer object so afterwards we can safely unbind
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
|
@ -737,9 +746,8 @@ int main_alt() {
|
|||
generate_nearby_chunks(render_distance);
|
||||
fflush(stdout);
|
||||
|
||||
glUseProgram(shaderProgram);
|
||||
|
||||
// draw the map
|
||||
glUseProgram(shaderProgram);
|
||||
glBindVertexArray(VAO);
|
||||
|
||||
//printf("1\n"); fflush(stdout);
|
||||
|
@ -754,6 +762,7 @@ int main_alt() {
|
|||
glUseProgram(shaderProgramR);
|
||||
glBindVertexArray(RVAO);
|
||||
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
glBindTexture(GL_TEXTURE_2D, itemTexts[0]);
|
||||
gl_drawInteger(shaderProgramR, (int)(1.0f/(real_T)), 0.0f, -0.92f, 0.05, 32, 255, 32, 0.005, -1);
|
||||
gl_drawInteger(shaderProgramR, triCount, 0.0f, 0.92f, 0.04f, 128, 128, 128, 0.005f, 1);
|
||||
|
|
17
src/menus.c
17
src/menus.c
|
@ -19,7 +19,7 @@
|
|||
#include "maeth.h"
|
||||
#include "menus.h"
|
||||
|
||||
float rectDefault[18] ;
|
||||
float rectDefault[30] ;
|
||||
float incr;
|
||||
|
||||
int creativeIntID;
|
||||
|
@ -44,13 +44,13 @@ char* modString;
|
|||
|
||||
static mat4 scale, slide;
|
||||
void initMenus() {
|
||||
rectDefault[0] = -0.5f; rectDefault[1] = -0.5f; rectDefault[2] = -0.99f;
|
||||
rectDefault[3] = -0.5f; rectDefault[4] = 0.5f; rectDefault[5] = -0.99f;
|
||||
rectDefault[6] = 0.5f; rectDefault[7] = 0.5f; rectDefault[8] = -0.99f;
|
||||
rectDefault[0] = -0.5f; rectDefault[1] = -0.5f; rectDefault[2] = -0.99f; rectDefault[3] = 0.0f; rectDefault[4] = 1.0f;
|
||||
rectDefault[5] = -0.5f; rectDefault[6] = 0.5f; rectDefault[7] = -0.99f; rectDefault[8] = 0.0f; rectDefault[9] = 0.0f;
|
||||
rectDefault[10] = 0.5f; rectDefault[11] = 0.5f; rectDefault[12] = -0.99f; rectDefault[13] = 1.0f; rectDefault[14] = 0.0f;
|
||||
|
||||
rectDefault[9] = -0.5f; rectDefault[10] = -0.5f; rectDefault[11] = -0.99f;
|
||||
rectDefault[12] = 0.5f; rectDefault[13] = 0.5f; rectDefault[14] = -0.99f;
|
||||
rectDefault[15] = 0.5f; rectDefault[16] = -0.5f; rectDefault[17] = -0.99f;
|
||||
rectDefault[15] = -0.5f; rectDefault[16] = -0.5f; rectDefault[17] = -0.99f; rectDefault[18] = 0.0f; rectDefault[19] = 1.0f;
|
||||
rectDefault[20] = 0.5f; rectDefault[21] = 0.5f; rectDefault[22] = -0.99f; rectDefault[23] = 1.0f; rectDefault[24] = 0.0f;
|
||||
rectDefault[25] = 0.5f; rectDefault[26] = -0.5f; rectDefault[27] = -0.99f; rectDefault[28] = 1.0f; rectDefault[29] = 1.0f;
|
||||
|
||||
incr = 0.0f;
|
||||
|
||||
|
@ -512,9 +512,10 @@ void display_button(int but_id, unsigned int fragShader) {
|
|||
} else {
|
||||
float size = minf(buttonList[but_id].h/2.3f, (buttonList[but_id].w)/(get_string_len(buttonList[but_id].text)));
|
||||
int retcol = mn_get_color(buttonList[but_id].red, buttonList[but_id].green, buttonList[but_id].blue);
|
||||
glBindTexture(GL_TEXTURE_2D, itemTexts[1]);
|
||||
gl_drawRect(fragShader, buttonList[but_id].x, buttonList[but_id].y, buttonList[but_id].w, buttonList[but_id].h, buttonList[but_id].red, buttonList[but_id].green, buttonList[but_id].blue);
|
||||
glBindTexture(GL_TEXTURE_2D, itemTexts[0]);
|
||||
gl_drawString(fragShader, buttonList[but_id].text, buttonList[but_id].x+buttonList[but_id].w/2.0f, buttonList[but_id].y+buttonList[but_id].h/2.0f, 0.7f*size, retcol, retcol, retcol, 0.7f*size/10.0f, 0);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -160,7 +160,7 @@ extern int render_distance;
|
|||
// ---------------------------------------------------------------------------------------------------- //
|
||||
|
||||
extern float vertices[180];
|
||||
extern float rectDefault[18];
|
||||
extern float rectDefault[30];
|
||||
|
||||
extern int triCount;
|
||||
|
||||
|
|
Loading…
Reference in New Issue