CSC8502_Advanced_Graphics_For_Games / 1) Your First Triangle / Renderer.cpp
Renderer.cpp
Raw
#include "Renderer.h"

Renderer::Renderer(Window& parent) : OGLRenderer(parent) {
	triangle = Mesh::GenerateTriangle();

	basicShader = new Shader("basicVertex.glsl", "colourFragment.glsl");

	if (!basicShader->LoadSuccess()) {
		return;
	}
	init = true;
}

Renderer::~Renderer(void) {
	delete triangle;
	delete basicShader;
}

float newC[] = { 0.0f, 1.0f, 3.0f, 1.0f};
float increment = 0.001f;

void Renderer::RenderScene() {
	glClearColor(0.2f, 0.2f, 0.2f, 1.0f);
	glClear(GL_COLOR_BUFFER_BIT);

/*Q3) glMapBuffer*/
	if (newC[0] > 1.0f) {
		increment = -0.001f;
	}
	else if(newC[0] < 0.0f){
		increment = 0.001f;
	}
	newC[0] += increment;
	newC[1] += increment;
	newC[2] += increment;


	glBindBuffer(GL_ARRAY_BUFFER, NORMAL_BUFFER); // Colour
	void* ptr = glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE);
	memcpy(ptr, newC, sizeof(newC));
	glUnmapBuffer(GL_ARRAY_BUFFER); 
/**/

	BindShader(basicShader);
	triangle->Draw();
}





// glBindBuffer(GL_ARRAY_BUFFER, COLOUR_BUFFER); // Vertex