void Painter::Render(D3D* d3d, Frustum* frustum, Viewport* viewport, D3DXMATRIX world, D3DXMATRIX view, D3DXMATRIX projection, D3DXMATRIX ortho) { std::sort(z.begin(), z.end(), Compare); for( vector<BaseType*>::iterator p=z.begin(); p!=z.end(); ++p) { //process(*p); RENDER BACK TO FRONT //FRONT = negatives //BACK = positives //sort list greatest to least so back renders first BaseType* base = *p; int type = base->GetType(); if (type == 1) { ModelType* model = (ModelType*)base; model->transform = &xforce(*model->transform, Rad); model->Render(d3d->GetDeviceContext(), frustum, viewport); } if (type == 2) { TextType* text = (TextType*)base; text->Render(d3d->GetDeviceContext(), viewport); } if (type == 3) { BitmapType* bitmap = (BitmapType*)base; bitmap->transform = &xforce(*bitmap->transform, Rad); bitmap->Render(d3d, viewport); } /*if (type == 4) { TransformType* transform = (TransformType*)base; transform->Render(d3d, world, view, projection, ortho); }*/ } return; }