Exemplo n.º 1
0
	void SpriteRenderer::Init(RenderDevice * device)
	{
		mInited = true;
		if (device == nullptr)
			return;

		Image * image = FindAction("image")->As<Image>();
		assert(image != nullptr);

		image->Init(device);
		image->GetImageInfo(&mTexture, &mSize);

		assert(mTexture != nullptr);

		// TODO: Handle failed case -- do not throw exception because I'm not using these! -Will
		mPosition = Search("position");
		mRotation = Search("rotation");
		mScale = Search("scale");

		mShader = device->CreateShader("Content/shader/glsl/sprite_v.glsl", "Content/shader/glsl/sprite_f.glsl", "");


		mBuffer = device->CreateBuffer(false);
		SetBufferData();
	}
Exemplo n.º 2
0
void MeshActor::Render()
{
	glUseProgram(shaderProgram);
	FreeBuffers();
	SetUniforms();
	SetBufferData();
	DrawBuffers();
	CleanUp();
	FreeBuffers();
}
void CParticleSystem::onEndElement(const std::string & elem)
{
	if (cur_compiling) {
		CPrefabCompiler::TCall c;
		c.is_start = false;
		c.elem = elem;
		cur_compiling->calls.push_back(c);
	}

	if (elem == "particles_emitter")
		SetBufferData();
}
Exemplo n.º 4
0
	void SpriteRenderer::SetUV(float origin_x, float origin_y, float width, float height)
	{
		(origin_x); (origin_y); (width); (height);
		Image * image = FindAction("image")->As<Image>();
		assert(image != nullptr);

		glm::vec4 size = (*image)["size"].Get<glm::vec4>();

		mU = origin_x / size.x;
		mV = 1.0f - (origin_y + height) / size.y;
		mUWidth = width / size.x;
		mVHeight = height / size.y;

		SetBufferData();
	}
Exemplo n.º 5
0
		void Mesh::SetBufferData(const int location, const std::vector<T>& vData,
				const unsigned int componentSize, const unsigned int stride, bool normalized)
		{
			SetBufferData(location, vData.data(), vData.size(), componentSize, stride, normalized);
		}
Exemplo n.º 6
0
void VBO::SetBufferData(const std::vector<GLfloat>& data) {
	if (data.size() > 0) {
		SetBufferData(data.size() * sizeof(GLfloat), reinterpret_cast<const GLvoid*>(&data[0]));
	}
}
Exemplo n.º 7
0
void VBO::SetBufferData(const std::vector<GLuint>& data) {
	if(data.size() > 0)
		SetBufferData(data.size()*sizeof(GLuint), &data[0]);
}
Exemplo n.º 8
0
void VBO::SetBufferData(const std::vector<GLushort>& data) {
    SetBufferData(data.size()*sizeof(GLushort), &data[0]);
}
Exemplo n.º 9
0
void VBO::SetBufferData(const std::vector<Vector2f>& data) {
    SetBufferData(data.size()*sizeof(float)*2, &data[0]);
}