Ejemplo n.º 1
0
void Mesh::onDraw() {
	if (mIBO) {
		/* Perform index drawing */
		glDrawElements(mRenderMode, mIBO->getElements(),
		               GL_UNSIGNED_INT, reinterpret_cast<GLvoid*>(0));
		FLOG_CHECK("glDrawElements failed");
	} else {
		/* Perform array drawing */
		glDrawArrays(mRenderMode, 0, mVBO->getElements());
		FLOG_CHECK("glDrawArrays failed");
	}
}
Ejemplo n.º 2
0
GLuint TQuery<target>::getResultAsync(GLuint resultIfNotAvailable, GLuint id) {
	GLuint result;
	glGetQueryObjectuiv(mHandles[id], GL_QUERY_RESULT_AVAILABLE, &result);
	FLOG_CHECK("Could not get querry result state");
	if (result) {
		glGetQueryObjectuiv(mHandles[id], GL_QUERY_RESULT, &result);
		FLOG_CHECK("Could not get query async result");
		return result;
	} else {
		return resultIfNotAvailable;
	}
}
Ejemplo n.º 3
0
void Framebuffer::attachTexture2D(
		GLenum attachment,
		GLenum target,
		GLuint textureHandle) {
	glFramebufferTexture2D(GL_FRAMEBUFFER, attachment, target, textureHandle, 0);
	FLOG_CHECK("Attach texture to framebuffer failed");
}
Ejemplo n.º 4
0
void Framebuffer::attachTexture2DDraw(
		GLenum attachment,
		GLenum target,
		GLuint textureHandle) {
	glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, attachment, target,
			textureHandle, 0);
	FLOG_CHECK(
			"attachTexture2DDraw failed. attachment: 0x%x, target: 0x%x, handle: 0x%x",
			attachment, target, textureHandle);
}
Ejemplo n.º 5
0
void Mesh::drawOcclusionBox(ICamera& camera) {

	mProgramOQ->use();

	core::Uniform::push(mULCMVPOcclusion,
	                    camera.getViewProjection() * mPhysicsMMC * mOcclusionMatrix);

	mOcclusionQuery.begin();

	glDrawArrays(mRenderMode, 0, gOQVertices);

	FLOG_CHECK("drawOcclusionBox failed");

	mOcclusionQuery.end();

	core::Program::disusePrograms();
}
Ejemplo n.º 6
0
void Texture2D::sendData(Texture2DFileData data) {
	if (data) {
		mFile->mData = data;
	}
	if (mFile->mConfig.mCompression) {
		glCompressedTexImage2D(mTarget, mFile->mConfig.mMipmapsLevel,
				mFile->mHeader.mInternalFormat, mFile->mHeader.mWidth,
				mFile->mHeader.mHeight, mFile->mConfig.mBorder,
				mFile->mConfig.mCompressionSize, (GLubyte*) mFile->mData);
	} else {
		glTexImage2D(mTarget, mFile->mConfig.mMipmapsLevel,
				mFile->mHeader.mInternalFormat, mFile->mHeader.mWidth,
				mFile->mHeader.mHeight, mFile->mConfig.mBorder,
				mFile->mHeader.mFormat, mFile->mHeader.mType,
				(GLubyte*) mFile->mData);
	}
	FLOG_CHECK("send data");
}
Ejemplo n.º 7
0
void TQuery<target>::end() {
	glEndQuery(mTarget);
	FLOG_CHECK("Could not end query");
}
Ejemplo n.º 8
0
void Framebuffer::bindForWriting(GLuint id) const {
	glBindFramebuffer(GL_DRAW_FRAMEBUFFER, mHandles[id]);
	FLOG_CHECK("glBindFramebuffer GL_DRAW_FRAMEBUFFER");
}
Ejemplo n.º 9
0
TQuery<target>::~TQuery() {
	glDeleteQueries(mHowMany, mHandles);
	FLOG_CHECK("Could not delete query");
}
Ejemplo n.º 10
0
void TQuery<target>::begin(GLuint id) {
	glBeginQuery(mTarget, mHandles[id]);
	FLOG_CHECK("Could not begin query");
}
Ejemplo n.º 11
0
void VertexArray::unbind() {
	glBindVertexArray(0);
	FLOG_CHECK("ould unbind the VAO");
}
Ejemplo n.º 12
0
Sampler::Sampler(GLint textureUnit, GLuint howMany)
		: GLObject(howMany), mTextureUnit(textureUnit) {
	glGenSamplers(mHowMany, mHandles);
	FLOG_CHECK("ERROR: Could not generate sampler -> ID");
}
Ejemplo n.º 13
0
void Texture2D::generateMipMaps() {
	if (mFile->mConfig.mMipmaps) {
		glGenerateMipmap(mTarget);
		FLOG_CHECK("generateMipMaps");
	}
}
Ejemplo n.º 14
0
VertexArray::~VertexArray() {
	glDeleteVertexArrays(mHowMany, mHandles);
	FLOG_CHECK("Could not delete the VAO");
}
Ejemplo n.º 15
0
void Sampler::setParameter(Parameter parameter, GLuint id) {
	glSamplerParameteri(mHandles[id], parameter.first, parameter.second);
	FLOG_CHECK("setParameter");
}
Ejemplo n.º 16
0
void Sampler::reload() {
	glGenSamplers(mHowMany, mHandles);
	FLOG_CHECK("reload");
}
Ejemplo n.º 17
0
void Sampler::setParameter(GLenum parameter, GLenum value, GLuint id) {
	glSamplerParameteri(mHandles[id], parameter, value);
	FLOG_CHECK("setParameter: 0x%x", parameter);
}
Ejemplo n.º 18
0
void Sampler::unbind(GLuint id) {
	glBindSampler(0, mHandles[id]);
	FLOG_CHECK("Could not bind the VAO");
}
Ejemplo n.º 19
0
void Sampler::bind(GLuint id) {
	glBindSampler(mTextureUnit, mHandles[id]);
	FLOG_CHECK("Could not bind the Sampler");
}
Ejemplo n.º 20
0
GLuint TQuery<target>::getResultSync(GLuint id) {
	GLuint result;
	glGetQueryObjectuiv(mHandles[id], GL_QUERY_RESULT, &result);
	FLOG_CHECK("Could not get querry sync result");
	return result;
}
Ejemplo n.º 21
0
void Framebuffer::bindForReading(GLuint id) const {
	glBindFramebuffer(GL_READ_FRAMEBUFFER, mHandles[id]);
	FLOG_CHECK("glBindFramebuffer GL_READ_FRAMEBUFFER");
}
Ejemplo n.º 22
0
VertexArray::VertexArray(GLuint howMany)
		: GLObject(howMany) {
	glGenVertexArrays(mHowMany, mHandles);
	FLOG_CHECK("Could not generate the VAO");
}
Ejemplo n.º 23
0
void TQuery<target>::reload() {
	glGenQueries(mHowMany, mHandles);
	FLOG_CHECK("reload");
}
Ejemplo n.º 24
0
void VertexArray::bind(GLuint id) {
	glBindVertexArray(mHandles[id]);
	FLOG_CHECK("Could not bind the VAO");
}
Ejemplo n.º 25
0
TQuery<target>::TQuery(GLsizei howMany) :
	GLObject(howMany) {
	glGenQueries(mHowMany, mHandles);
	FLOG_CHECK("Could not create query");
}
Ejemplo n.º 26
0
void VertexArray::reload() {
	glGenVertexArrays(mHowMany, mHandles);
	FLOG_CHECK("reload");
}
Ejemplo n.º 27
0
void Framebuffer::reload() {
	glGenFramebuffers(mHowMany, mHandles);
	FLOG_CHECK("Reloading");
}