130 likes | 340 Views
Frontend 2.0 Framework Overview. Frontend 2.0 is a portable framework for C++ for developing games, demos and desktop applications. This folder gives a schematic overview of the framework components and their relationships.
E N D
Frontend 2.0 Framework Overview Frontend 2.0 is a portable framework for C++ for developing games, demos and desktop applications. This folder gives a schematic overview of the framework components and their relationships. For more information and documentation, please visit www.frontendapi.com.
Frontend 2.0 Software Stack Your Application Frontend 2.0 Utils Frontend 2.0 Implementation (i.e. OpenFrontend) Native APIs
Frontend 2.0 Component Overview Utils Graphics Sound Net Input Core Basic Types Containers Math GUI IO System OpenFrontend
Frontend 2.0 Core Overview Basic Types Containers Math IO Trigonometric Functions Stream Abstract interface for streams of bytes (i.e. Files) Base Types UInt8, Int8 UInt16, Int16 UInt32, Int32 UInt64, Int64 UIntPtr, IntPtr TimeStamp Array<T> Linear container Vector2, Vector3, Vector4 Map<TKey, Tvalue> Red-black tree map FileSystem Abstract interface for file systems (i.e. native file system) Matrix3, Matrix4 HashMap<TKey, Tvalue> Hash based map DateTime Rectangle System Queue<T> Linked list Object Display Interface for controlling native display devices Algorithms Heap<T> Heap String BinarySearch Thread Interface for controlling native threads Stack<T> Stack based on Array<T> Buffer HeapSort Mutex Interface for native mutexes Set<T> Red-black based set Exception QuickSort Pool<T> Page-based allocator Timing Various functions for querying the system timer ShellSort Bitmap = Interface only – Requires a native implementation, i.e. OpenFrontend
Frontend 2.0 GUI Overview Basic Framework Painting Widget Library WindowManager Wraps native or virtual window managing systems Painter Abstract interface for painting to controls or bitmaps. Button PictureBox CheckBox ProgressBar Style Controls the look and feel of GUI components Font Represents a font inside a WindowManager DropDownList ScrollBar GroupBox Slider Control Base class for all objects with a visual representation Pixmap Represents a Bitmap managed by a WindowManager Label TabControl Window Wraps a native or a virtual window ListBox TextBox Panel ToolStrip Widget Base class for all widgets = Interface only – Requires a native implementation, i.e. OpenFrontend
Frontend 2.0 Graphics Overview OpenFrontend Graphics::CreateDeviceGL2CG() Graphics::CreateDeviceGL2GLSL() Graphics::CreateDeviceDX9HLSL() Graphics::CreateDeviceDX10HLSL() Interfaces created by Device Surface Represents a 2D bitmap surface managed by a Device, i.e. a mip level of a texture. BlendState DepthStencilState Creates Texture Represents a texture managed by a Device RasterizerState Device Represents a session with a graphics device. Devices can create other objects needed to store graphics data, and perform drawing of this data. Texture2D Creates SemanticMap Texture3D InputLayout Describes how input should be read from vertex buffers and into vertex attribute streams in shaders. TextureCube Buffer Represents a data buffer managed by a Device Shader Represents a piece of a Program that controls a stage in the graphics pipeline (vertex, geometry or pixel) VertexBuffer IndexBuffer Program Represents a set of shaders linked together. Only one program can be set on the device at a time. Creates Parameter Represents a global constants of a Program. Can be written to from the application to affect program behaviour.
Frontend 2.0 Sound Overview OpenFrontend Sound::CreateDevice() Creates Device Represents a session with a sound device Creates Buffer Represents a sound data buffer managed by a Device which can be played back
Frontend 2.0 Net Overview OpenFrontend Net::CreateContext() Creates Context Represents a session with the native networking API. Creates Interfaces created by Context Address Represents a network address Creates IO::Stream A stream interface for communicating throught the socket Socket Represents a network connection endpoint
OpenFrontend Implementations Overview Shows implementation status anno January 2009 Frontend 2.0 Interfaces Graphics Sound Input Net Core Current OpenFrontend Implementations Direct3D 9 + HLSL OpenGL + CG OpenGL + GLSL DSound 8 DInput8 WinSock Windows Backend Windows: PortAudio Native Berkely Sockets Linux Backend Linux: Berkely Sockets Mac OS X: Native/Third party APIs
Frontend 2.0 Utils Overview Your Application Resource Objects RScene RTexture2D RXmlDocument RGeometry RAudioStream Etc... Utils ResourceProxy Loader Library Frameworks COLLADA SceneGraph Loader Frontend SceneGraph Loaders and Savers Other SceneGraph Draw2D Shapes Framebuffer Geometry Collaging Higher level loaders (Textures, Shaders etc) Xml Profiling Audio Bitmap Loaders and Savers Font Loader OGG Loader XML Loader and Saver Third party libraries Frontend 2.0