<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wowcube.com/index.php?action=history&amp;feed=atom&amp;title=SDK_6.3%2FC%2B%2B%2FGFX_Engine</id>
	<title>SDK 6.3/C++/GFX Engine - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wowcube.com/index.php?action=history&amp;feed=atom&amp;title=SDK_6.3%2FC%2B%2B%2FGFX_Engine"/>
	<link rel="alternate" type="text/html" href="https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;action=history"/>
	<updated>2026-07-26T22:45:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;diff=16947&amp;oldid=prev</id>
		<title>WowBot: Restore enriched reference + detailed Scramble/Splashscreen (WowBot)</title>
		<link rel="alternate" type="text/html" href="https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;diff=16947&amp;oldid=prev"/>
		<updated>2026-07-26T09:39:44Z</updated>

		<summary type="html">&lt;p&gt;Restore enriched reference + detailed Scramble/Splashscreen (WowBot)&lt;/p&gt;
&lt;a href=&quot;https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;amp;diff=16947&amp;amp;oldid=16946&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>WowBot</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;diff=16946&amp;oldid=prev</id>
		<title>WowBot: Fix ROBODoc typo parsing (LB_getInfo/LB_getScore restored), detailed Scramble+Splashscreen (WowBot)</title>
		<link rel="alternate" type="text/html" href="https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;diff=16946&amp;oldid=prev"/>
		<updated>2026-07-26T09:39:00Z</updated>

		<summary type="html">&lt;p&gt;Fix ROBODoc typo parsing (LB_getInfo/LB_getScore restored), detailed Scramble+Splashscreen (WowBot)&lt;/p&gt;
&lt;a href=&quot;https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;amp;diff=16946&amp;amp;oldid=16943&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>WowBot</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;diff=16943&amp;oldid=prev</id>
		<title>WowBot: GFX Engine: detailed per-method reference + usage patterns from official samples (WowBot)</title>
		<link rel="alternate" type="text/html" href="https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;diff=16943&amp;oldid=prev"/>
		<updated>2026-07-26T09:29:11Z</updated>

		<summary type="html">&lt;p&gt;GFX Engine: detailed per-method reference + usage patterns from official samples (WowBot)&lt;/p&gt;
&lt;a href=&quot;https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;amp;diff=16943&amp;amp;oldid=16939&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>WowBot</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;diff=16939&amp;oldid=prev</id>
		<title>WowBot: C++ (WASM) and Rust API reference for SDK 6.3 (WowBot)</title>
		<link rel="alternate" type="text/html" href="https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/GFX_Engine&amp;diff=16939&amp;oldid=prev"/>
		<updated>2026-07-26T09:14:54Z</updated>

		<summary type="html">&lt;p&gt;C++ (WASM) and Rust API reference for SDK 6.3 (WowBot)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{notice|'''Official WOWCube SDK documentation.''' SDK 6.3, C++ (WebAssembly) API. Signatures are extracted from the canonical SDK headers shipped with the WOWCube Development Kit; the headers remain authoritative.}}&lt;br /&gt;
&lt;br /&gt;
{{SDK 6.3 nav}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''← [[SDK 6.3]] · C++ / GFX Engine''&lt;br /&gt;
&lt;br /&gt;
The object-oriented retained layer of the C++ SDK (namespace &amp;lt;code&amp;gt;Cubios&amp;lt;/code&amp;gt;): a scene graph with sprites, text, backgrounds, sounds and math primitives. It sits on top of the [[SDK 6.3/C++/Native API|native ABI]] and is driven by the [[SDK 6.3/C++/Application|Application framework]]. Public signatures below are extracted from the SDK 6.3 headers.&lt;br /&gt;
&lt;br /&gt;
=== Scene ===&lt;br /&gt;
&lt;br /&gt;
The retained scene graph owned by every &amp;lt;code&amp;gt;Application&amp;lt;/code&amp;gt; (field &amp;lt;code&amp;gt;app.Scene&amp;lt;/code&amp;gt;). Holds scene objects and renders them per screen.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Scene.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Scene();&lt;br /&gt;
 virtual ~Scene();&lt;br /&gt;
 uint32_t CreateObject(SceneObject* obj);&lt;br /&gt;
 bool CreateObjectWithID(uint32_t id, SceneObject* obj);&lt;br /&gt;
 uint32_t CreateSound(Sound* obj);&lt;br /&gt;
 bool CreateSoundWithID(uint32_t id, Sound* obj);&lt;br /&gt;
 bool DisposeObjectWithID(uint32_t id);&lt;br /&gt;
 bool DisposeSoundWithID(uint32_t id);&lt;br /&gt;
 void DisposeAllObjects();&lt;br /&gt;
 void Play(uint32_t id, uint8_t volume);&lt;br /&gt;
&lt;br /&gt;
=== SceneObject ===&lt;br /&gt;
&lt;br /&gt;
Base class of every visual object in the scene graph. Provides position, rotation, scale, opacity, z-order, per-screen placement and lifecycle.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;SceneObject.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 SceneObject():Parent(nullptr),ScreenAngle(0),Visible(true),InBegin(false);&lt;br /&gt;
 virtual ~SceneObject();&lt;br /&gt;
 virtual void Render() = 0;&lt;br /&gt;
 SceneObject* SetColor(uint32_t v);&lt;br /&gt;
 SceneObject* SetA(uint8_t a);&lt;br /&gt;
 SceneObject* SetAf(float a);&lt;br /&gt;
 SceneObject* SetAfSafe(float a);&lt;br /&gt;
 SceneObject* SetR(uint8_t r);&lt;br /&gt;
 SceneObject* SetG(uint8_t g);&lt;br /&gt;
 SceneObject* SetB(uint8_t b);&lt;br /&gt;
 SceneObject* SetVisible(bool v);&lt;br /&gt;
 SceneObject* SetTransform(const Math::Transform&amp;amp; t);&lt;br /&gt;
 SceneObject* SetPosition(const Math::Vec2&amp;amp; p);&lt;br /&gt;
 SceneObject* SetPosition(float x, float y);&lt;br /&gt;
 SceneObject* SetRotation(int r);&lt;br /&gt;
 SceneObject* SetMirroring(unsigned int m);&lt;br /&gt;
 SceneObject* SetScale(unsigned int s);&lt;br /&gt;
 SceneObject* SetScale(unsigned int sx, unsigned int sy);&lt;br /&gt;
 SceneObject* SetXScale(unsigned int s);&lt;br /&gt;
 SceneObject* SetYScale(unsigned int s);&lt;br /&gt;
 const Math::Vec2 ScreenPosition();&lt;br /&gt;
 if(this-&amp;gt;Parent==nullptr) return pos;&lt;br /&gt;
 switch(ScreenAngle);&lt;br /&gt;
 pos.Set(this-&amp;gt;Transform.Position.X,this-&amp;gt;Transform.Position.Y);&lt;br /&gt;
 pos.Set(240-this-&amp;gt;Transform.Position.Y,this-&amp;gt;Transform.Position.X);&lt;br /&gt;
 pos.Set(240-this-&amp;gt;Transform.Position.X,240-this-&amp;gt;Transform.Position.Y);&lt;br /&gt;
 pos.Set(this-&amp;gt;Transform.Position.Y,240-this-&amp;gt;Transform.Position.X);&lt;br /&gt;
 SceneObject* Move(const Math::Vec2&amp;amp; v);&lt;br /&gt;
 SceneObject* Move(float dx, float dy);&lt;br /&gt;
 if(this-&amp;gt;Parent==nullptr) return this;&lt;br /&gt;
 if(!this-&amp;gt;InBegin);&lt;br /&gt;
 LOG_w(&amp;quot;SceneObject: Move() can only be called within Begin/End block!\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
=== Screen ===&lt;br /&gt;
&lt;br /&gt;
One of the three displays of the current module; passed to &amp;lt;code&amp;gt;on_Render()&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;on_PhysicsTick()&amp;lt;/code&amp;gt;. Render target selector.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Screen.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Screen(uint8_t id);&lt;br /&gt;
 void SetOrientation(TOPOLOGY_orientation_mode_t mode);&lt;br /&gt;
 uint8_t Position() const;&lt;br /&gt;
 TOPOLOGY_orientation_t Direction() const;&lt;br /&gt;
 uint8_t OppositeFace() const;&lt;br /&gt;
 uint8_t Face() const;&lt;br /&gt;
 inline uint8_t ID() const;&lt;br /&gt;
 inline uint32_t Angle() const;&lt;br /&gt;
 SceneObject* Add(SceneObject* obj);&lt;br /&gt;
 SceneObject* AddCopy(SceneObject* obj);&lt;br /&gt;
 void Begin(TOPOLOGY_orientation_mode_t mode = Cubios::ORIENTATION_MODE_MENU,bool autorotation = false);&lt;br /&gt;
 void End();&lt;br /&gt;
 inline bool IsAutorotation();&lt;br /&gt;
&lt;br /&gt;
=== Object ===&lt;br /&gt;
&lt;br /&gt;
Minimal reference-counted base class for engine resources.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Object.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Object();&lt;br /&gt;
 virtual ~Object();&lt;br /&gt;
 inline void SetId(int16_t id);&lt;br /&gt;
&lt;br /&gt;
=== Gfx::Background ===&lt;br /&gt;
&lt;br /&gt;
Full-screen background image object.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Gfx/Background.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Background(uint32_t color);&lt;br /&gt;
 Background(uint8_t R, uint8_t G, uint8_t B);&lt;br /&gt;
 Background(uint8_t R, uint8_t G, uint8_t B, uint8_t A);&lt;br /&gt;
 virtual ~Background();&lt;br /&gt;
 void Render() override;&lt;br /&gt;
 Cubios::SceneObject* SetColor(uint32_t color);&lt;br /&gt;
 Cubios::SceneObject* SetColor(uint8_t R, uint8_t G, uint8_t B);&lt;br /&gt;
 Cubios::SceneObject* SetColor(uint8_t R, uint8_t G, uint8_t B, uint8_t A);&lt;br /&gt;
&lt;br /&gt;
=== Gfx::Sprite ===&lt;br /&gt;
&lt;br /&gt;
Static image sprite bound to an image asset by name.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Gfx/Sprite.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Sprite(std::string name, const Cubios::Math::Transform&amp;amp; t);&lt;br /&gt;
 Sprite(std::string name, float x, float y);&lt;br /&gt;
 Sprite(std::string name);&lt;br /&gt;
 Sprite(const Sprite&amp;amp; sprite);&lt;br /&gt;
 virtual ~Sprite();&lt;br /&gt;
 void Render() override;&lt;br /&gt;
&lt;br /&gt;
=== Gfx::AnimatedSprite ===&lt;br /&gt;
&lt;br /&gt;
Frame-animated sprite.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Gfx/AnimatedSprite.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 AnimatedSprite(std::vector&amp;lt;std::string&amp;gt;&amp;amp; names, const Cubios::Math::Transform&amp;amp; t);&lt;br /&gt;
 AnimatedSprite(std::vector&amp;lt;std::string&amp;gt;&amp;amp; names, float x, float y);&lt;br /&gt;
 AnimatedSprite(std::vector&amp;lt;std::string&amp;gt;&amp;amp; names);&lt;br /&gt;
 AnimatedSprite(std::string name,std::string extension, int16_t firstFrame, int16_t lastFrame, const Cubios::Math::Transform&amp;amp; t);&lt;br /&gt;
 AnimatedSprite(std::string name,std::string extension, int16_t firstFrame, int16_t lastFrame, float x, float y);&lt;br /&gt;
 AnimatedSprite(std::string name,std::string extension, int16_t firstFrame, int16_t lastFrame);&lt;br /&gt;
 AnimatedSprite(const AnimatedSprite&amp;amp; sprite);&lt;br /&gt;
 AnimatedSprite(Cubios::Gfx::SpriteAtlas&amp;lt;Cubios::Gfx::SpriteAtlasElement&amp;gt;* atlas, const Cubios::Math::Transform&amp;amp; t);&lt;br /&gt;
 AnimatedSprite(Cubios::Gfx::SpriteAtlas&amp;lt;Cubios::Gfx::SpriteAtlasElement&amp;gt;* atlas, float x, float y);&lt;br /&gt;
 AnimatedSprite(Cubios::Gfx::SpriteAtlas&amp;lt;Cubios::Gfx::SpriteAtlasElement&amp;gt;* atlas);&lt;br /&gt;
 virtual ~AnimatedSprite();&lt;br /&gt;
 void Render() override;&lt;br /&gt;
 int16_t Tick(uint32_t dt);&lt;br /&gt;
 Cubios::SceneObject* SetFrame(int16_t frameNumber);&lt;br /&gt;
 Cubios::SceneObject* SetPlaybackSpeed(int16_t speed);&lt;br /&gt;
 Cubios::SceneObject* SetPlaybackMode(playbackMode_t mode);&lt;br /&gt;
 int16_t PrevFrame();&lt;br /&gt;
 int16_t NextFrame();&lt;br /&gt;
&lt;br /&gt;
=== Gfx::SpriteAtlas ===&lt;br /&gt;
&lt;br /&gt;
Sprite atlas: a sheet of sub-images rendered via &amp;lt;code&amp;gt;SpriteAtlasElement&amp;lt;/code&amp;gt;. Added in SDK 6.2.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Gfx/SpriteAtlas.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 SpriteAtlas(std::string name, Cubios::Scene* scene);&lt;br /&gt;
 virtual ~SpriteAtlas();&lt;br /&gt;
 bool AddSprite(uint32_t id, const Cubios::Math::Rect2&amp;amp; rc);&lt;br /&gt;
 bool RemoveSprite(uint32_t id);&lt;br /&gt;
 T* Get(uint32_t ind);&lt;br /&gt;
 inline size_t Count();&lt;br /&gt;
 inline std::vector&amp;lt;uint32_t&amp;gt;* ElementsInsertionOrder();&lt;br /&gt;
&lt;br /&gt;
=== Gfx::SpriteAtlasElement ===&lt;br /&gt;
&lt;br /&gt;
One element (sub-rectangle) of a &amp;lt;code&amp;gt;SpriteAtlas&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Gfx/SpriteAtlas.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 SpriteAtlasElement(SpriteAtlasBase* host, const Cubios::Math::Rect2&amp;amp; rc);&lt;br /&gt;
 virtual ~SpriteAtlasElement();&lt;br /&gt;
 void Render() override;&lt;br /&gt;
 virtual SpriteAtlasElement* Copy();&lt;br /&gt;
 inline Cubios::Math::Rect2* Rect();&lt;br /&gt;
&lt;br /&gt;
=== Gfx::Text ===&lt;br /&gt;
&lt;br /&gt;
Text object with scale, alignment and color.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Gfx/Text.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Text(std::string text, const Cubios::Math::Transform&amp;amp; t, uint32_t fontSize, const Cubios::Math::Color&amp;amp; color, Cubios::text_align_t al = Cubios::text_align_t::TEXT_ALIGN_CENTER);&lt;br /&gt;
 Text(std::string text, const Cubios::Math::Transform&amp;amp; t, uint32_t fontSize = 10, Cubios::text_align_t al = Cubios::text_align_t::TEXT_ALIGN_CENTER);&lt;br /&gt;
 Text(std::string text, float x, float y, uint32_t fontSize = 10);&lt;br /&gt;
 Text(std::string text, float x, float y, uint32_t fontSize, const Cubios::Math::Color&amp;amp; color);&lt;br /&gt;
 virtual ~Text();&lt;br /&gt;
 void Render() override;&lt;br /&gt;
 Cubios::SceneObject* SetContent(std::string text);&lt;br /&gt;
 Cubios::SceneObject* FormatContent(char const* format,...);&lt;br /&gt;
 Cubios::SceneObject* SetFontSize(uint32_t fontSize);&lt;br /&gt;
&lt;br /&gt;
=== Gfx::QRCode ===&lt;br /&gt;
&lt;br /&gt;
QR-code object rendered on screen. Added in SDK 6.0.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Gfx/QRCode.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 QRCode(std::string data, const Cubios::Math::Transform&amp;amp; t);&lt;br /&gt;
 QRCode(std::string data, float x, float y);&lt;br /&gt;
 QRCode(std::string data, const Cubios::Math::Transform&amp;amp; t, u32_t size);&lt;br /&gt;
 QRCode(std::string data, float x, float y, u32_t size);&lt;br /&gt;
 QRCode(const QRCode&amp;amp; qr);&lt;br /&gt;
 virtual ~QRCode();&lt;br /&gt;
 Cubios::SceneObject* SetSize(u32_t size);&lt;br /&gt;
 Cubios::SceneObject* SetColor(const Math::Color&amp;amp; color);&lt;br /&gt;
 Cubios::SceneObject* SetBackgroundColor(const Math::Color&amp;amp; color);&lt;br /&gt;
 Cubios::SceneObject* SetData(std::string data);&lt;br /&gt;
 void Render() override;&lt;br /&gt;
&lt;br /&gt;
=== Gfx::OffscreenRenderTarget ===&lt;br /&gt;
&lt;br /&gt;
Offscreen render target (baked image) usable as a scene object.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Gfx/OffscreenRenderTarget.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 OffscreenRenderTarget(u32_t width, u32_t height, Cubios::GFX_PixelFormat_t format);&lt;br /&gt;
 virtual ~OffscreenRenderTarget();&lt;br /&gt;
 Cubios::SceneObject* Add(Cubios::SceneObject* obj);&lt;br /&gt;
 Cubios::SceneObject* AddCopy(Cubios::SceneObject* obj);&lt;br /&gt;
 void Begin(bool overwrite=false);&lt;br /&gt;
 void End();&lt;br /&gt;
 void Render() override;&lt;br /&gt;
 virtual void RenderLayer(renderLayerOrder_t order);&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
A sound asset; play, stop and query state.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Sound.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 explicit Sound(const std::string&amp;amp; name);&lt;br /&gt;
 ~Sound();&lt;br /&gt;
 void Play(uint8_t volume = 100);&lt;br /&gt;
 static void Stop();&lt;br /&gt;
 static bool IsPlaying();&lt;br /&gt;
&lt;br /&gt;
=== SoundCollection ===&lt;br /&gt;
&lt;br /&gt;
A set of sounds with random playback helpers. Added in SDK 6.2.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Sound.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 SoundCollection(std::vector&amp;lt;std::string&amp;gt;&amp;amp; names);&lt;br /&gt;
 SoundCollection(std::vector&amp;lt;Cubios::Sound*&amp;gt;&amp;amp; sounds);&lt;br /&gt;
 virtual ~SoundCollection();&lt;br /&gt;
 bool PlayRandomSound(uint8_t volume = 100, bool stopCurrent = true);&lt;br /&gt;
 bool RepeatRandomSounds(uint8_t volume, int delayMin, int delayMax, int deltaTime);&lt;br /&gt;
 void Stop();&lt;br /&gt;
 bool IsPlaying();&lt;br /&gt;
&lt;br /&gt;
=== NetworkMessage ===&lt;br /&gt;
&lt;br /&gt;
Bit-packed serializer for inter-module messages (write/read ints, signed ints, floats).&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;NetworkMessage.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 NetworkMessage(uint8_t* data=NULL,int length=MESSAGE_SIZE_MAX);&lt;br /&gt;
 virtual ~NetworkMessage();&lt;br /&gt;
 void Print();&lt;br /&gt;
 void WriteInt(int value, int bits);&lt;br /&gt;
 void WriteByte(uint8_t value);&lt;br /&gt;
 void WriteSignedInt(int value, int bits);&lt;br /&gt;
 void WriteBool(bool value);&lt;br /&gt;
 void WriteFloat(float value);&lt;br /&gt;
 int ReadInt(int bits);&lt;br /&gt;
 int ReadSignedInt(int bits);&lt;br /&gt;
 uint8_t ReadByte();&lt;br /&gt;
 bool ReadBool();&lt;br /&gt;
 float ReadFloat();&lt;br /&gt;
 uint8_t* GetData(int&amp;amp; length);&lt;br /&gt;
 void SetData(uint8_t* data, int length);&lt;br /&gt;
 inline void Reset(bool zero=false);&lt;br /&gt;
&lt;br /&gt;
=== SaveMessage ===&lt;br /&gt;
&lt;br /&gt;
Serializer for persistent state (used with &amp;lt;code&amp;gt;SaveState()&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;LoadState()&amp;lt;/code&amp;gt;). Added in SDK 6.0.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;SaveMessage.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 SaveMessage(uint8_t* data=NULL,int length=GAME_SAVE_SIZE);&lt;br /&gt;
 virtual ~SaveMessage();&lt;br /&gt;
 void Print();&lt;br /&gt;
 void WriteInt(int value, int bits);&lt;br /&gt;
 void WriteByte(uint8_t value);&lt;br /&gt;
 void WriteSignedInt(int value, int bits);&lt;br /&gt;
 void WriteBool(bool value);&lt;br /&gt;
 void WriteFloat(float value);&lt;br /&gt;
 int ReadInt(int bits);&lt;br /&gt;
 int ReadSignedInt(int bits);&lt;br /&gt;
 uint8_t ReadByte();&lt;br /&gt;
 bool ReadBool();&lt;br /&gt;
 float ReadFloat();&lt;br /&gt;
 uint8_t* GetData(int&amp;amp; length);&lt;br /&gt;
 void SetData(uint8_t* data, int length);&lt;br /&gt;
 inline void Reset(bool zero=false);&lt;br /&gt;
&lt;br /&gt;
=== Scramble ===&lt;br /&gt;
&lt;br /&gt;
Cube-scramble helper. Added in SDK 6.0.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Scramble.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Scramble();&lt;br /&gt;
 ~Scramble();&lt;br /&gt;
 void StartScramble(uint8_t twistsCount);&lt;br /&gt;
 void VirtualTwist(uint8_t screen, uint8_t direction);&lt;br /&gt;
 virtual void on_BeforeTwist() = 0;&lt;br /&gt;
 virtual void on_MappingChanged(uint8_t moduleTo, uint8_t screenTo, uint8_t moduleFrom, uint8_t screenFrom) = 0;&lt;br /&gt;
 virtual void on_Twist(const Cubios::TOPOLOGY_twistInfo_t twist) = 0;&lt;br /&gt;
&lt;br /&gt;
=== Splashscreen ===&lt;br /&gt;
&lt;br /&gt;
Standard splash screen with leaderboard support (reworked in SDK 6.2).&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Splashscreen.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Splashscreen(Cubios::Application *app, SplsParms::e_LeadersDataType dataType);&lt;br /&gt;
 ~Splashscreen();&lt;br /&gt;
 virtual void Render(Cubios::Screen* screen);&lt;br /&gt;
 virtual void Tick(uint32_t currentTime, uint32_t deltaTime);&lt;br /&gt;
 uint32_t GetPersonalBest();&lt;br /&gt;
 void SetRecord(uint32_t value);&lt;br /&gt;
 void SetNamedValue(uint8_t idx, std::string name, uint32_t value, SplsParms::e_LeadersDataType type = SplsParms::e_LeadersDataType::typeNumber);&lt;br /&gt;
 void SetSeparator(std::string s);&lt;br /&gt;
 void SetLabel(SplsParms::e_LabelTypes idx, std::string text);&lt;br /&gt;
 void SetApplicationName(std::string name);&lt;br /&gt;
 void SetLeaderBoardTable(SplsParms::e_LeaderBoardType type);&lt;br /&gt;
 void SetLeaderBoardTable(uint32_t (&amp;amp;lbTable)[TOPOLOGY_FACES_MAX][TOPOLOGY_POSITIONS_MAX]);&lt;br /&gt;
 void SetPlaybackSpeed(SplsParms::e_LabelTypes idx, uint32_t speed);&lt;br /&gt;
 void SetQRCodeLink(std::string link);&lt;br /&gt;
 void SetColors(Cubios::Math::Color key, Cubios::Math::Color base);&lt;br /&gt;
 void SetTopology(uint8_t screen, Cubios::TOPOLOGY_place_t p);&lt;br /&gt;
 void GetTopology(TOPOLOGY_orientation_mode_t mode, bool replaceFaceToOrientation);&lt;br /&gt;
 virtual void RenderUserDefinedScreen(uint8_t type);&lt;br /&gt;
&lt;br /&gt;
=== Math::Vec2 ===&lt;br /&gt;
&lt;br /&gt;
2D float vector.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Math/Vec2.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Vec2();&lt;br /&gt;
 Vec2(const float _x, const float _y);&lt;br /&gt;
 Vec2(const Vec2&amp;amp; vec);&lt;br /&gt;
 Vec2(const float* p);&lt;br /&gt;
 void Set(const float _x, const float _y);&lt;br /&gt;
 void Set(const Vec2&amp;amp; vec);&lt;br /&gt;
 void Set(const float* p);&lt;br /&gt;
 float Len() const;&lt;br /&gt;
 void Norm();&lt;br /&gt;
 bool IsEqual(const Vec2&amp;amp; v, const float tol) const;&lt;br /&gt;
 int Compare(const Vec2&amp;amp; v, float tol) const;&lt;br /&gt;
&lt;br /&gt;
=== Math::Vec2i ===&lt;br /&gt;
&lt;br /&gt;
2D integer vector.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Math/Vec2.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Vec2i();&lt;br /&gt;
 Vec2i(const int16_t _x, const int16_t _y);&lt;br /&gt;
 Vec2i(const Vec2i&amp;amp; vec);&lt;br /&gt;
 Vec2i(const int16_t* p);&lt;br /&gt;
 void Set(const int16_t _x, const int16_t _y);&lt;br /&gt;
 void Set(const Vec2i&amp;amp; vec);&lt;br /&gt;
 void Set(const int16_t* p);&lt;br /&gt;
 float Len() const;&lt;br /&gt;
 void Norm();&lt;br /&gt;
 bool IsEqual(const Vec2i&amp;amp; v, const float tol) const;&lt;br /&gt;
 int Compare(const Vec2i&amp;amp; v, float tol) const;&lt;br /&gt;
&lt;br /&gt;
=== Math::Transform ===&lt;br /&gt;
&lt;br /&gt;
Position + rotation + mirroring transform of a scene object.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Math/Transform.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Transform():Position(0,0),Rotation(0),Mirroring(0),ScaleX(100),ScaleY(100);&lt;br /&gt;
 Transform(float x, float y): Position(x,y),Rotation(0),Mirroring(0),ScaleX(100),ScaleY(100);&lt;br /&gt;
 Transform(float x, float y, unsigned int a): Position(x,y),Rotation(a),Mirroring(0),ScaleX(100),ScaleY(100);&lt;br /&gt;
 Transform(float x, float y, unsigned int a, unsigned int sx, unsigned int sy ): Position(x,y),Rotation(a),Mirroring(0),ScaleX(sx),ScaleY(sy);&lt;br /&gt;
 Transform(float x, float y, unsigned int a, unsigned int m): Position(x,y),Rotation(a),Mirroring(m),ScaleX(100),ScaleY(100);&lt;br /&gt;
 Transform(float x, float y, unsigned int a, unsigned int sx, unsigned int sy, unsigned int m): Position(x,y),Rotation(a),Mirroring(m),ScaleX(sx),ScaleY(sy);&lt;br /&gt;
 Transform(const Transform&amp;amp; t): Position(t.Position),Rotation(t.Rotation),Mirroring(t.Mirroring),ScaleX(t.ScaleX),ScaleY(t.ScaleY);&lt;br /&gt;
 int SafeRotation();&lt;br /&gt;
&lt;br /&gt;
=== Math::Color ===&lt;br /&gt;
&lt;br /&gt;
RGBA color with float/byte accessors (see also &amp;lt;code&amp;gt;Gfx/Colors.h&amp;lt;/code&amp;gt; named constants).&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Math/Color.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Color():_R(255),_G(255),_B(255),_A(255),_Value(0xFFFFFFFF);&lt;br /&gt;
 Color(uint8_t r, uint8_t g, uint32_t b):_R(r),_G(g),_B(b),_A(255);&lt;br /&gt;
 Color(uint8_t r, uint8_t g, uint32_t b, uint8_t a):_R(r),_G(g),_B(b),_A(a);&lt;br /&gt;
 Color(uint32_t v):_Value(v);&lt;br /&gt;
 this-&amp;gt;_B = (v &amp;amp; 0x000000ff);&lt;br /&gt;
 this-&amp;gt;_G = (v &amp;amp; 0x0000ff00) &amp;gt;&amp;gt; 8;&lt;br /&gt;
 this-&amp;gt;_R = (v &amp;amp; 0x00ff0000) &amp;gt;&amp;gt; 16;&lt;br /&gt;
 this-&amp;gt;_A = (v &amp;amp; 0xff000000) &amp;gt;&amp;gt; 24;&lt;br /&gt;
 void Set(uint8_t r, uint8_t g, uint32_t b, uint8_t a);&lt;br /&gt;
 void Set(uint8_t r, uint8_t g, uint32_t b);&lt;br /&gt;
 void Set(uint32_t v);&lt;br /&gt;
 inline void SetA(uint8_t a);&lt;br /&gt;
 inline void SetAf(float a);&lt;br /&gt;
 inline void SetAfSafe(float a);&lt;br /&gt;
 inline void SetR(uint8_t r);&lt;br /&gt;
 inline void SetG(uint8_t g);&lt;br /&gt;
 inline void SetB(uint8_t b);&lt;br /&gt;
 inline uint8_t A();&lt;br /&gt;
 inline float Af();&lt;br /&gt;
 inline uint8_t R();&lt;br /&gt;
 inline uint8_t G();&lt;br /&gt;
 inline uint8_t B();&lt;br /&gt;
 inline uint32_t Value();&lt;br /&gt;
&lt;br /&gt;
=== Math::Rect2 ===&lt;br /&gt;
&lt;br /&gt;
2D rectangle.&lt;br /&gt;
&lt;br /&gt;
Public interface (&amp;lt;code&amp;gt;Math/Rect2.h&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 Rect2();&lt;br /&gt;
 Rect2(const Vec2i&amp;amp; topLeft, const Vec2i&amp;amp; bottomRight);&lt;br /&gt;
 Rect2(int16_t x, int16_t y, int16_t width, int16_t height);&lt;br /&gt;
 void Set(const Vec2i&amp;amp; topLeft, const Vec2i&amp;amp; bottomRight);&lt;br /&gt;
 bool IsInside(const Vec2i&amp;amp; p) const;&lt;br /&gt;
 Vec2i Midpoint() const;&lt;br /&gt;
&lt;br /&gt;
[[Category:SDK 6.3]]&lt;br /&gt;
[[Category:C++ API]]&lt;/div&gt;</summary>
		<author><name>WowBot</name></author>
		
	</entry>
</feed>