Listing 1
int main(int argc, char** argv) {
RenderDevice renderDevice;
renderDevice.init();
TextureRef logo = Texture::fromFile("G3D.jpg");
RealTime now = System::time();
RealTime endTime = System::time() + 10;
while (now < endTime) {
now = System::time();
renderDevice.beginFrame();
renderDevice.clear();
GCamera camera;
camera.setPosition(Vector3((endTime - now) / 5 - 1,1,5));
camera.lookAt(Vector3::zero());
renderDevice.setProjectionAndCameraMatrix(camera);
renderDevice.setTexture(0, logo);
renderDevice.beginPrimitive(RenderDevice::TRIANGLES);
for (int i = 0; i < 3; ++i) {
double a = G3D_TWO_PI * i / 3;
renderDevice.setTexCoord(0,
(Vector2(cos(a), -sin(a)) + Vector2(0.5, 0.5)));
renderDevice.sendVertex(Vector3(cos(a), sin(a), 0) * 2);
}
renderDevice.endPrimitive();
renderDevice.enableLighting();
renderDevice.setLight(0, GLight::
directional(Vector3(1,1,1), Color3::white()));
Draw::axes(&renderDevice);
renderDevice.disableLighting();
renderDevice.endFrame();
}
return 0;
}