Ejemplo n.º 1
0
	void RenderDataManager::UpdateRect(int sx, int sy,int w,int h)
	{
		for (size_t a = 0; a < qrd.size(); a++)
		{
			QuadRenderData* rd = qrd[a];
			TQuad* q = rd->GetQuad();

			// rect vs rect collision:
			if (q->sqPos.x + q->width >= sx && q->sqPos.y + q->width >= sy &&
				q->sqPos.x <= sx + w && q->sqPos.y <= sy + h)
			{
				assert(q->renderData==qrd[a]);
				Free(q->renderData);
			}
		}
	}
Ejemplo n.º 2
0
	// delete all renderdata that is not used this frame and has maxlod < VBufMinDetail
	void RenderDataManager::FreeUnused()
	{
		for (int a = 0; a < qrd.size(); a++)
		{
			QuadRenderData* rd = qrd[a];

			if (rd->used) {
				rd->used = false;
				continue;
			}

			if (rd->GetQuad()->maxLodValue < VBufMinDetail) {
				Free(rd);
				a--;
			}
		}
	}