Skip to content

Commit

Permalink
Bitmap font example
Browse files Browse the repository at this point in the history
  • Loading branch information
konopka90 committed Sep 3, 2015
1 parent dc37832 commit fabcfe4
Show file tree
Hide file tree
Showing 5 changed files with 168 additions and 3 deletions.
4 changes: 2 additions & 2 deletions Build/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ if(APPLE)
option(BUILD_FRAMEWORK "Build Framework bundle for OSX" OFF)
endif()

option(BUILD_SAMPLES "Build samples" OFF)
option(BUILD_SAMPLES "Build samples" ON)
if(WIN32)
option(SKIP_DIRECTX_SAMPLES "Skip build of all DirectX related samples. Only applies if BUILD_SAMPLES is ON" OFF)
option(SKIP_DIRECTX9_SAMPLE "Skip build of DirectX 9 related sample. Only applies if BUILD_SAMPLES is ON and SKIP_DIRECTX_SAMPLES is OFF" OFF)
Expand Down Expand Up @@ -457,7 +457,7 @@ endmacro()
if(BUILD_SAMPLES)
include(SampleFileList)

set(samples treeview customlog drag loaddocument)
set(samples treeview customlog drag loaddocument bitmapfont)
set(tutorials template datagrid datagrid_tree tutorial_drag)

if(NOT BUILD_FRAMEWORK)
Expand Down
7 changes: 7 additions & 0 deletions Build/cmake/SampleFileList.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,13 @@ set(loaddocument_SRC_FILES
${PROJECT_SOURCE_DIR}/Samples/basic/loaddocument/src/main.cpp
)

set(bitmapfont_HDR_FILES
)

set(bitmapfont_SRC_FILES
${PROJECT_SOURCE_DIR}/Samples/basic/bitmapfont/src/main.cpp
)

set(ogre3d_HDR_FILES
${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RenderInterfaceOgre3D.h
${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketApplication.h
Expand Down
2 changes: 1 addition & 1 deletion Samples/assets/Arial.fnt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<font>
<info face="Arial" size="26" bold="0" italic="0" src="Arial_0.tga"/>
<common lineHeight="26" base="21" scaleW="1024" scaleH="1024" />
<common lineHeight="26" base="26" scaleW="1024" scaleH="1024" />
<chars count="191">
<char id="32" x="170" y="40" width="1" height="1" xoffset="0" yoffset="21" xadvance="6" />
<char id="33" x="643" y="19" width="2" height="17" xoffset="3" yoffset="4" xadvance="8" />
Expand Down
28 changes: 28 additions & 0 deletions Samples/assets/bitmapfont.rml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<rml>
<head>
<title>Demo</title>
<link type="text/template" href="window.rml" />
<style>
body
{
width: 300px;
height: 225px;
font-family: Arial;
margin: auto;
}

div#title_bar div#icon
{
display: none;
}

div#content
{
text-align: left;
}
</style>
</head>
<body template="window">
This is a bitmap font<br/>sample.
</body>
</rml>
130 changes: 130 additions & 0 deletions Samples/basic/bitmapfont/src/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
/*
* This source file is part of libRocket, the HTML/CSS Interface Middleware
*
* For the latest information, see http://www.librocket.com
*
* Copyright (c) 2008-2010 CodePoint Ltd, Shift Technology Ltd
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*/

#include <Rocket/Core.h>
#include <Rocket/Debugger.h>
#include <Input.h>
#include <Shell.h>

Rocket::Core::Context* context = NULL;

ShellRenderInterfaceExtensions *shell_renderer;

void GameLoop()
{
context->Update();

shell_renderer->PrepareRenderBuffer();
context->Render();
shell_renderer->PresentRenderBuffer();
}

#if defined ROCKET_PLATFORM_WIN32
#include <windows.h>
int APIENTRY WinMain(HINSTANCE ROCKET_UNUSED_PARAMETER(instance_handle), HINSTANCE ROCKET_UNUSED_PARAMETER(previous_instance_handle), char* ROCKET_UNUSED_PARAMETER(command_line), int ROCKET_UNUSED_PARAMETER(command_show))
#else
int main(int ROCKET_UNUSED_PARAMETER(argc), char** ROCKET_UNUSED_PARAMETER(argv))
#endif
{
#ifdef ROCKET_PLATFORM_WIN32
ROCKET_UNUSED(instance_handle);
ROCKET_UNUSED(previous_instance_handle);
ROCKET_UNUSED(command_line);
ROCKET_UNUSED(command_show);
#else
ROCKET_UNUSED(argc);
ROCKET_UNUSED(argv);
#endif

#ifdef ROCKET_PLATFORM_LINUX
#define APP_PATH "../Samples/basic/loaddocument/"
#else
#define APP_PATH "../../Samples/basic/loaddocument/"
#endif

#ifdef ROCKET_PLATFORM_WIN32
DoAllocConsole();
#endif

int window_width = 1024;
int window_height = 768;

ShellRenderInterfaceOpenGL opengl_renderer;
shell_renderer = &opengl_renderer;

// Generic OS initialisation, creates a window and attaches OpenGL.
if (!Shell::Initialise(APP_PATH) ||
!Shell::OpenWindow("Load Document Sample", shell_renderer, window_width, window_height, true))
{
Shell::Shutdown();
return -1;
}

// Rocket initialisation.
Rocket::Core::SetRenderInterface(&opengl_renderer);
shell_renderer->SetViewport(window_width, window_height);

ShellSystemInterface system_interface;
Rocket::Core::SetSystemInterface(&system_interface);

Rocket::Core::Initialise();

// Create the main Rocket context and set it on the shell's input layer.
context = Rocket::Core::CreateContext("main", Rocket::Core::Vector2i(window_width, window_height));
if (context == NULL)
{
Rocket::Core::Shutdown();
Shell::Shutdown();
return -1;
}

Rocket::Debugger::Initialise(context);
Input::SetContext(context);
shell_renderer->SetContext(context);

// Load bitmap font
Rocket::Core::FontDatabase::LoadFontFace("../../assets/Arial.fnt");

// Load and show the demo document.
Rocket::Core::ElementDocument* document = context->LoadDocument("../../assets/bitmapfont.rml");
if (document != NULL)
{
document->Show();
document->RemoveReference();
}

Shell::EventLoop(GameLoop);

// Shutdown Rocket.
context->RemoveReference();
Rocket::Core::Shutdown();

Shell::CloseWindow();
Shell::Shutdown();

return 0;
}

0 comments on commit fabcfe4

Please sign in to comment.