Exemplo n.º 1
0
	MeshComponent::~MeshComponent()
	{
		glDeleteVertexArrays(1, &vertexArray);
		glDeleteBuffers(1, &m_vertexBuffer);

		if(glIsTexture(meshTexture) == GL_TRUE)
			glDeleteTextures(1, &meshTexture);
		if(glIsSampler(meshSampler) == GL_TRUE)
			glDeleteSamplers(1, &meshSampler);
	}
Exemplo n.º 2
0
extern void
free_sampler(SAMPLER *sampler) {
    assert(sampler != NULL);

#ifndef GL_ES_VERSION_2_0
    if(glIsSampler(sampler->id))
        glDeleteSamplers(1, &sampler->id);
#endif // NO GL_ES_VERSION_2_0

    sampler->id = 0;
    sampler->usage = 0;
}
Exemplo n.º 3
0
	void Mesh::loadTexture(const std::string &path)
	{
		if(glIsTexture(m_meshTexture) == GL_FALSE)
			glGenTextures(1, &m_meshTexture);
		if(glIsSampler(m_meshSampler) == GL_FALSE)
			glGenSamplers(1, &m_meshSampler);

		// Setup sampler data
		glSamplerParameteri(m_meshSampler, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
		glSamplerParameteri(m_meshSampler, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
		glSamplerParameteri(m_meshSampler, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
		glSamplerParameteri(m_meshSampler, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

		SDL_Surface* surface = IMG_Load(path.c_str());

		GLint readFormat = GL_RGB;

		if(surface->format->BytesPerPixel == 4)
		{
			if(surface->format->Rmask == 0xFF)
				readFormat = GL_RGBA;
			else if(surface->format->Bmask == 0xFF)
				readFormat = GL_BGRA;
		}
		else if(surface->format->BytesPerPixel == 3)
		{
			if(surface->format->Rmask == 0xFF)
				readFormat = GL_RGB;
			else if(surface->format->Bmask == 0xFF)
				readFormat = GL_BGR;
		}
			
		if(surface->format->Rmask)

		GLfloat texDat[] =
		{
			1.f,1.f,1.f,1.f,
			0.f,1.f, 0.f, 1.f,
			1.f,1.f,1.f,1.f,
			0.f,1.f, 0.f, 1.f,
		};

		// Setup texture data
		glBindTexture(GL_TEXTURE_2D, m_meshTexture);
		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, surface->w, surface->h, 0, readFormat, GL_UNSIGNED_BYTE, surface->pixels);
		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);

		glBindTexture(GL_TEXTURE_2D, 0);
		SDL_FreeSurface(surface);
	}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_GL33_nglIsSampler(JNIEnv *__env, jclass clazz, jint sampler, jlong __functionAddress) {
	glIsSamplerPROC glIsSampler = (glIsSamplerPROC)(intptr_t)__functionAddress;
	UNUSED_PARAMS(__env, clazz)
	return (jboolean)glIsSampler(sampler);
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_ARBSamplerObjects_glIsSampler(JNIEnv *__env, jclass clazz, jint sampler) {
    glIsSamplerPROC glIsSampler = (glIsSamplerPROC)tlsGetFunction(670);
    UNUSED_PARAM(clazz)
    return (jboolean)glIsSampler(sampler);
}