Beispiel #1
0
int main(int argc, char* argv[])
{
	// Get device singleton instance.
	auto device = RenderDevice::getInstance();
	
	device->init();
	
	device->setQuitOnStart(true);
	
	Text text(20.0f);
	
	text.setPosition(0, 0);
	text.setColor(Color::White);
	text.setString("Hello Text");
	
	// Create the render texture, make it 100x100
	RenderTexture renderTexture;
	renderTexture.create(100, 100);
	// Start drawing on the texture
	renderTexture.startFrame();
	// Draw the text
	text.draw();
	// End drawing to the texture
	renderTexture.endFrame();
	
	// Save the render texture to a file
	renderTexture.save("out.png");
	
	// Main loop
	while(device->isRunning())
	{
		device->setTargetScreen(Screen::Top);
		device->clear(Color::Black);
		device->startFrame();
		// Draw the text
		text.draw();
		device->endFrame();
		
		device->setTargetScreen(Screen::Bottom);
		device->clear(Color::Black);
		device->startFrame();
		device->endFrame();
		
		device->swapBuffers();
	}
	
	// DON'T FORGET TO CALL THIS OR THE 3DS WILL CRASH AT EXIT
	device->destroy();
	
	return 0;
}
Beispiel #2
0
int main(int argc, char* argv[])
{
	// Get device singleton instance.
	auto device = RenderDevice::getInstance();
	
	device->init();
	
	device->setQuitOnStart(true);
	
	// Create a rectangle shape
	RectangleShape rect(100, 60, 100, 100);
	// And we set it's color to blue
	rect.setColor(Color::Blue);
	
	rect.setOutlineColor(Color::Red);
	rect.setOutlineThickness(2);
	
	// Create a line
	LineShape line(0, 0, BOTTOM_SCREEN_WIDTH, BOTTOM_SCREEN_HEIGHT);
	// And set its color to yellow
	line.setColor(Color::Yellow);
	
	// Main loop
	while(device->isRunning())
	{
		device->setTargetScreen(Screen::Top);
		device->clear(Color::Black);
		device->startFrame();
		// Draw the rectangle to top screen
		rect.draw();
		device->endFrame();
		
		device->setTargetScreen(Screen::Bottom);
		device->clear(Color::Black);
		device->startFrame();
		// Draw a diagonal line on bottom screen
		line.draw();
		device->endFrame();
		
		device->swapBuffers();
	}
	
	// DON'T FORGET TO CALL THIS OR THE 3DS WILL CRASH AT EXIT
	device->destroy();
	
	return 0;
}
Beispiel #3
0
int main(int argc, char* argv[])
{
	auto device = RenderDevice::getInstance();
	
	device->init();
	device->setQuitOnStart(true);
	
	Text text(30.0f);
	text.setString("Random color");
	
	// Create a thread that changes the text color every second
	Thread thread([&](void*)
	{
		while(device->isRunning())
		{
			text.setColor(Color::Random());
			Thread::sleep(Time::seconds(1));
		}
	});
	
	// Start the thread
	thread.start();
	
	while(device->isRunning())
	{
		device->setTargetScreen(Screen::Top);
		device->clear(Color::Black);
		device->startFrame();
		text.draw();
		device->endFrame();
		
		device->setTargetScreen(Screen::Bottom);
		device->clear(Color::Black);
		device->startFrame();
		device->endFrame();
		
		device->swapBuffers();
	}
	
	// Wait the thread end
	thread.join();
	
	// DON'T FORGET TO CALL THIS OR THE 3DS WILL CRASH AT EXIT
	device->destroy();
	
	return 0;
}
Beispiel #4
0
OculusView::OculusView(const std::string& name) : OsgView(name)
{
	SURGSIM_ADD_SERIALIZABLE_PROPERTY(OculusView, std::shared_ptr<SurgSim::Framework::Component>, InputComponent,
									  getInputComponent, setInputComponent);

	// Default Settings of Oculus DK2
	setFullScreen(true);
	setDisplayType(View::DISPLAY_TYPE_HMD);
	setStereoMode(View::STEREO_MODE_HORIZONTAL_SPLIT);
	setScreenWidth(0.0631);
	setScreenHeight(0.071);
	setEyeSeparation(0.06);
	setScreenDistance(0.10);
	setTargetScreen(1); // Assume Oculus HMD has ID '1'.

	std::array<int, 2> dimensions = {1920, 1080};
	setDimensions(dimensions);
}
Beispiel #5
0
int main(int argc, char* argv[])
{
    // Get device singleton instance.
    auto device = RenderDevice::getInstance();
    // We use a class called InputManager for checking input.
    // It's a singleton so we need to get the instance.
    auto input = InputManager::getInstance();

    device->init();

    Text text(20.0f);

    text.setPosition(100, 100);
    text.setColor(Color::White);

    // Main loop
    while(device->isRunning())
    {
        std::string key;

        if(input->isKeyDown(Keys::A))
        {
            key = "A";
        } else if(input->isKeyDown(Keys::B))
        {
            key = "B";
        } else if(input->isKeyDown(Keys::X))
        {
            key = "X";
        } else if(input->isKeyDown(Keys::Y))
        {
            key = "Y";
        } else if(input->isKeyDown(Keys::L))
        {
            key = "L";
        } else if(input->isKeyDown(Keys::R))
        {
            key = "R";
        } else if(input->isKeyDown(Keys::Select))
        {
            key = "Select";
        } else // ... You should check other buttons too
        {
            key = "Nothing";
        }

        // Quit if the start button is pressed
        if(input->isKeyDown(Keys::Start))
        {
            device->quit();
        }

        text.setString(key + " pressed.");

        device->setTargetScreen(Screen::Top);
        device->clear(Color::Black);
        device->startFrame();
        text.draw();
        device->endFrame();

        device->setTargetScreen(Screen::Bottom);
        device->clear(Color::Black);
        device->startFrame();
        device->endFrame();

        device->swapBuffers();
    }

    // DON'T FORGET TO CALL THIS OR THE 3DS WILL CRASH AT EXIT
    device->destroy();

    return 0;
}
Beispiel #6
0
int main(int argc, char* argv[])
{
	// Get device singleton instance.
	auto device = RenderDevice::getInstance();
	
	auto input = InputManager::getInstance();
	
	device->init();
	
	Text text(20.0f);
	
	text.setPosition(0, 30);
	text.setColor(Color::White);
	text.setLineWidth(BOTTOM_SCREEN_WIDTH);
	
	std::string str =
			"Press A to take a screenshot of top screen.\n\n"
			"Press B to take a screenshot of bottom screen.\n";
	
	text.setString(str);
	
	// Setup a basic scene
	CircleShape circle(60);
	circle.setPosition(100, 50);
	circle.setColor(Color::Yellow);
	
	circle.setSegments(20);
	
	TriangleShape triangle(Vec2(110, 60), Vec2(140, 10), Vec2(180, 60));
	triangle.setColor(Color::Red);
	
	// Main loop
	while(device->isRunning())
	{
		if(input->isKeyDown(Keys::A))
		{
			device->takeScreenshot("top.png", ImageFormat::Png, Screen::Top);
		}
		else if(input->isKeyDown(Keys::B))
		{
			device->takeScreenshot("bot.png", ImageFormat::Png, Screen::Bottom);
		}
		
		if(input->isKeyDown(Keys::Start))
		{
			device->quit();
		}
		
		triangle.setScale((float)std::sin(device->getTicks()));
		circle.setAngle(circle.getAngle() + 20.0f * device->getDeltaTime());
		
		device->setTargetScreen(Screen::Top);
		device->clear(Color::Cyan);
		device->startFrame();
		circle.draw();
		triangle.draw();
		device->endFrame();
		
		device->setTargetScreen(Screen::Bottom);
		device->clear(Color::Black);
		device->startFrame();
		text.draw();
		device->endFrame();
		
		device->swapBuffers();
	}
	
	// DON'T FORGET TO CALL THIS OR THE 3DS WILL CRASH AT EXIT
	device->destroy();
	
	return 0;
}