DebugDrawer::DebugDrawer() : lines(nullptr) , triangles(nullptr) { Allocator* alloc = AllocatorGetThis(); MaterialHandle debug = MaterialCreate(alloc, "Debug"); Material* mat = debug.Resolve(); mat->setBackfaceCulling(false); mat->setBlending(BlendSource::SourceAlpha, BlendDestination::InverseSourceAlpha); mat->setDepthCompare( DepthCompare::LessOrEqual ); mat->setDepthOffset(Vector2(-1.0f, 1.0f)); //mat->setDepthRange( Vector2(0.1f, 0.9f) ); //mat->setDepthWrite(false); // Lines GeometryBuffer* linesVB = AllocateThis(GeometryBuffer); linesVB->setBufferAccess(BufferAccess::Write); linesVB->setBufferUsage(BufferUsage::Dynamic); SetupDebugVertexFormat(linesVB); lines = RenderBatchCreate(alloc); lines->setGeometryBuffer(linesVB); lines->setPrimitiveType(PrimitiveType::Lines); lines->setMaterial(debug); lines->setRenderLayer(RenderLayer::PostTransparency); renderables.push_back(lines.get()); // Triangles GeometryBufferPtr trianglesVB = AllocateThis(GeometryBuffer); trianglesVB->setBufferAccess(BufferAccess::Write); trianglesVB->setBufferUsage(BufferUsage::Dynamic); SetupDebugVertexFormat(trianglesVB.get()); triangles = RenderBatchCreate(alloc); triangles->setGeometryBuffer(trianglesVB); triangles->setPrimitiveType(PrimitiveType::Triangles); triangles->setMaterial(debug); triangles->setRenderLayer(RenderLayer::PostTransparency); renderables.push_back(triangles.get()); // Quads GeometryBufferPtr quadsVB = AllocateThis(GeometryBuffer); quadsVB->setBufferAccess(BufferAccess::Write); quadsVB->setBufferUsage(BufferUsage::Dynamic); SetupDebugVertexFormat(quadsVB.get()); quads = RenderBatchCreate(alloc); quads->setGeometryBuffer(quadsVB); quads->setPrimitiveType(PrimitiveType::Quads); quads->setMaterial(debug); quads->setRenderLayer(RenderLayer::PostTransparency); renderables.push_back(quads.get()); reset(); }
Log::Log() { Allocator* alloc = AllocatorGetThis(); LogAddHandler(this, LogConsoleHandler); if( !gs_Log ) LogSetDefault(this); }
void Packet::write(const Object* object) { SetBitFlag(flags, PacketFlags::Binary, true); SerializerBinary serializer(AllocatorGetThis(), 0); serializer.stream = &ms; serializer.save(object); }
void Message::write(const Object* object) { SetBitFlag(flags, MessageFlags::Binary, true); Serializer* serializer = SerializerCreateBinary(AllocatorGetThis(), 0); serializer->stream = ms; SerializerSave(serializer, object); Deallocate(serializer); }
Log::Log() : timer(nullptr) , mutex(nullptr) { Allocator* alloc = AllocatorGetThis(); timer = TimerCreate(alloc); mutex = MutexCreate(alloc); LogAddHandler(this, LogConsoleHandler); if( !gs_Log ) LogSetDefault(this); }
void Overlay::createGeometry() { material = MaterialCreate(AllocatorGetThis(), "OverlayMaterial"); renderable = AllocateThis(Renderable); renderable->setPrimitiveType(PrimitiveType::Quads); renderable->setGeometryBuffer( AllocateThis(GeometryBuffer) ); renderable->setMaterial(material); renderable->setRenderLayer(RenderLayer::Overlays); renderable->onPreRender.Bind(this, &Overlay::onPreRender); addRenderable( renderable ); }
NAMESPACE_CORE_BEGIN //-----------------------------------// Message::Message(MessageId id) : id(id) , ms(nullptr) , packet(nullptr) , freePacket(false) , flags(0) { ms = StreamCreateFromMemory(AllocatorGetThis(), 512); SetBitFlag(flags, MessageFlags::Reliable, true); //SetBitFlag(flags, MessageFlags::Compressed, true); }
void EditorFrame::createPlugins() { pluginManager = AllocateThis(PluginManager); // Find and instantiate plugins. std::vector<Plugin*> plugins; ClassCreateChilds(ReflectionGetType(EditorPlugin), AllocatorGetThis(), plugins); PluginsSortByPriority(plugins); pluginManager->registerPlugins(plugins); // Notify plugins that they have been registered. for( size_t i = 0; i < plugins.size(); i++ ) { EditorPlugin* plugin = (EditorPlugin*) plugins[i]; plugin->onPluginRegistered(); } }
void Engine::init() { // Sets up the main logger. setupLogger(); // Creates the task system. taskPool = TaskPoolCreate( AllocatorGetThis(), 2 ); NetworkInitialize(); ResourcesInitialize(); InputInitialize(); GraphicsInitialize(); // Creates the resource manager. resourceManager = AllocateThis(ResourceManager); resourceManager->setTaskPool( taskPool ); // Registers default resource loaders. resourceManager->setupResourceLoaders( ResourceLoaderGetType() ); // Creates the rendering device. renderDevice = AllocateThis(RenderDevice); #ifdef ENABLE_AUDIO_OPENAL // Creates the audio device. audioDevice = AudioCreateDevice(""); if( audioDevice ) audioDevice->createMainContext(); #endif #ifdef ENABLE_SCRIPTING_LUA // Creates the scripting manager. scriptManager = AllocateThis(ScriptManager); #endif }
bool Entity::addTransform() { Transform* transform = TransformCreate( AllocatorGetThis() ); return addComponent(transform); }