Esempio n. 1
0
		void SpriteManagerBaseNonTemplate::handleCreate(fm::Size spriteIndexBeg,
														fm::Size spriteIndexEnd,
														const fg::Glyph &shape,
														fm::vec3 pos,
														fm::vec2 size,
														fm::vec2 dir,
														fm::vec4 clr)
		{
			if (!m_shader.isLoaded() && m_shaderResult)
				loadShader();
			
			if (m_drawData.getDrawCount() == 0)
				setupDrawData();
			
			fm::vec2 uvsPos = shape.pos;
			fm::vec2 uvsSiz = shape.size;
			fm::vec2 frameS = shape.leftdown;
			
			fm::Size amount = spriteIndexEnd - spriteIndexBeg;
			
			if (useInstancing())
			{
				m_posProp.push(&pos.x,amount);
				m_dirProp.push(&dir.x,amount);
				m_sizProp.push(&size.x,amount);
				m_uvpProp.push(&uvsPos.x,amount);
				m_uvsProp.push(&uvsSiz.x,amount);
				m_frmProp.push(&frameS.x,amount);
				m_clrProp.push(&clr.x,amount);
			}
			else
			{
				fm::vec3 *pts;
				fm::vec2 *uvs;
				fm::vec4 *clrP;
				
				buildVertices(&pts,&uvs,&clrP,pos,size,shape,dir,clr);
				
				m_vertPtsProp.push(&pts[0].x,amount);
				m_vertUVsProp.push(&uvs[0].x,amount);
				m_vertClrProp.push(&clrP[0].x,amount);
				
				delete[] pts;
				delete[] uvs;
				delete[] clrP;
			}
			
			m_spriteCount += amount;
			
			updateDrawCall();
		}
Esempio n. 2
0
void TerrainFBO::setup()
{
	w =2048*2;
	h=2048*2;
	setupProgram();
	setupFBO();
	setupDrawData();

	npMaterial mat;
	mat.loadDiffuse("3DAssets/terrainNoise.png");
	textureNoise  = mat.diffuseTexture;







}