Пример #1
0
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();
}
Пример #2
0
Log::Log()
{
	Allocator* alloc = AllocatorGetThis();


	LogAddHandler(this, LogConsoleHandler);

	if( !gs_Log ) LogSetDefault(this);
}
Пример #3
0
void Packet::write(const Object* object)
{
	SetBitFlag(flags, PacketFlags::Binary, true);

	SerializerBinary serializer(AllocatorGetThis(), 0);
	serializer.stream = &ms;

	serializer.save(object);
}
Пример #4
0
void Message::write(const Object* object)
{
	SetBitFlag(flags, MessageFlags::Binary, true);

	Serializer* serializer = SerializerCreateBinary(AllocatorGetThis(), 0);
	serializer->stream = ms;

	SerializerSave(serializer, object);
	
	Deallocate(serializer);
}
Пример #5
0
Log::Log()
	: timer(nullptr)
	, mutex(nullptr)
{
	Allocator* alloc = AllocatorGetThis();

	timer = TimerCreate(alloc);
	mutex = MutexCreate(alloc);

	LogAddHandler(this, LogConsoleHandler);

	if( !gs_Log ) LogSetDefault(this);
}
Пример #6
0
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 );
}
Пример #7
0
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);
}
Пример #8
0
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();
	}
}
Пример #9
0
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
}
Пример #10
0
bool Entity::addTransform()
{
	Transform* transform = TransformCreate( AllocatorGetThis() );
	return addComponent(transform);
}