AS3_Val initializeViewport( void* self, AS3_Val args ) { Viewport * view; Scene * scene; Camera * camera; double width, height; AS3_ArrayValue( args, "DoubleType, DoubleType, PtrType, PtrType", &width, &height, &camera, &scene ); view = newViewport( (float)width, (float)height, scene, camera ); return AS3_Array( "PtrType, PtrType, PtrType, PtrType, PtrType, PtrType", view, view->videoBuffer, view->zBuffer, & view->camera, & view->scene, &view->sortTransList ); }
/** * Add a camera to a layer */ void GD_API AddCamera( RuntimeScene & scene, const gd::String & layerName, float width, float height, float viewportLeft, float viewportTop, float viewportRight, float viewportBottom ) { //Create the new view const sf::RenderWindow * window = scene.renderWindow; sf::View view = window ? window->getDefaultView() : sf::View(); //Setup the viewport and the view if ( viewportBottom != 0 && viewportLeft != 0 && viewportRight != 0 && viewportTop != 0) { sf::FloatRect newViewport(viewportLeft, viewportTop, viewportRight - viewportLeft, viewportBottom - viewportTop); view.setViewport(newViewport); } if ( width != 0 || height != 0) { view.setSize(sf::Vector2f(width, height)); } //Add the runtime camera to the layer scene.GetRuntimeLayer(layerName).AddCamera(RuntimeCamera(view)); return; }