コード例 #1
0
ファイル: ObjectRenderer.cpp プロジェクト: aldoxtor/openrw
void ObjectRenderer::buildRenderList(GameObject* object, RenderList& outList) {
    // Right now specialized on each object type
    switch (object->type()) {
        case GameObject::Instance:
            renderInstance(static_cast<InstanceObject*>(object), outList);
            break;
        case GameObject::Character:
            renderCharacter(static_cast<CharacterObject*>(object), outList);
            break;
            ;
        case GameObject::Vehicle:
            renderVehicle(static_cast<VehicleObject*>(object), outList);
            break;
            ;
        case GameObject::Pickup:
            renderPickup(static_cast<PickupObject*>(object), outList);
            break;
        case GameObject::Projectile:
            renderProjectile(static_cast<ProjectileObject*>(object), outList);
            break;
        case GameObject::Cutscene:
            renderCutsceneObject(static_cast<CutsceneObject*>(object), outList);
            break;
        default:
            break;
    }
}
コード例 #2
0
ファイル: bucket3d.cpp プロジェクト: szrq/warzone2100
/* render Objects in list */
void bucketRenderCurrentList(void)
{
	std::sort(bucketArray.begin(), bucketArray.end());

	pie_MatBegin(true);
	for (std::vector<BUCKET_TAG>::const_iterator thisTag = bucketArray.begin(); thisTag != bucketArray.end(); ++thisTag)
	{
		switch(thisTag->objectType)
		{
			case RENDER_PARTICLE:
				renderParticle((ATPART*)thisTag->pObject);
				break;
			case RENDER_EFFECT:
				renderEffect((EFFECT*)thisTag->pObject);
				break;
			case RENDER_DROID:
				renderDroid((DROID*)thisTag->pObject);
				break;
			case RENDER_SHADOW:
				renderShadow((DROID*)thisTag->pObject, getImdFromIndex(MI_SHADOW));
				break;
			case RENDER_STRUCTURE:
				renderStructure((STRUCTURE*)thisTag->pObject);
				break;
			case RENDER_FEATURE:
				renderFeature((FEATURE*)thisTag->pObject);
				break;
			case RENDER_PROXMSG:
				renderProximityMsg((PROXIMITY_DISPLAY*)thisTag->pObject);
				break;
			case RENDER_PROJECTILE:
				renderProjectile((PROJECTILE*)thisTag->pObject);
				break;
			case RENDER_ANIMATION:
				renderAnimComponent((COMPONENT_OBJECT*)thisTag->pObject);
				break;
			case RENDER_DELIVPOINT:
				renderDeliveryPoint((FLAG_POSITION*)thisTag->pObject, false);
				break;
		}
	}
	pie_MatEnd();

	//reset the bucket array as we go
	bucketArray.resize(0);
}
コード例 #3
0
ファイル: bucket3d.cpp プロジェクト: Warzone2100/warzone2100
/* render Objects in list */
void bucketRenderCurrentList(const glm::mat4 &viewMatrix)
{
    std::sort(bucketArray.begin(), bucketArray.end());

    for (std::vector<BUCKET_TAG>::const_iterator thisTag = bucketArray.begin(); thisTag != bucketArray.end(); ++thisTag)
    {
        switch (thisTag->objectType)
        {
        case RENDER_PARTICLE:
            renderParticle((ATPART *)thisTag->pObject, viewMatrix);
            break;
        case RENDER_EFFECT:
            renderEffect((EFFECT *)thisTag->pObject, viewMatrix);
            break;
        case RENDER_DROID:
            displayComponentObject((DROID *)thisTag->pObject, viewMatrix);
            break;
        case RENDER_STRUCTURE:
            renderStructure((STRUCTURE *)thisTag->pObject, viewMatrix);
            break;
        case RENDER_FEATURE:
            renderFeature((FEATURE *)thisTag->pObject, viewMatrix);
            break;
        case RENDER_PROXMSG:
            renderProximityMsg((PROXIMITY_DISPLAY *)thisTag->pObject, viewMatrix);
            break;
        case RENDER_PROJECTILE:
            renderProjectile((PROJECTILE *)thisTag->pObject, viewMatrix);
            break;
        case RENDER_DELIVPOINT:
            renderDeliveryPoint((FLAG_POSITION *)thisTag->pObject, false, viewMatrix);
            break;
        }
    }

    //reset the bucket array as we go
    bucketArray.resize(0);
}