| @@ -43,7 +43,7 @@ public: | |||||
| BtPhysTest(bool editor = false); | BtPhysTest(bool editor = false); | ||||
| virtual ~BtPhysTest(); | virtual ~BtPhysTest(); | ||||
| char const *GetName() { return "<BtPhysTest>"; } | |||||
| std::string GetName() const { return "<BtPhysTest>"; } | |||||
| protected: | protected: | ||||
| virtual void TickGame(float seconds); | virtual void TickGame(float seconds); | ||||
| @@ -36,7 +36,7 @@ public: | |||||
| SceneSetup(std::string const& name); | SceneSetup(std::string const& name); | ||||
| ~SceneSetup(); | ~SceneSetup(); | ||||
| static char const *GetName() { return "<scenesetup>"; } | |||||
| static std::string GetName() { return "<scenesetup>"; } | |||||
| //-- | //-- | ||||
| bool Startup(); | bool Startup(); | ||||
| @@ -1,8 +1,14 @@ | |||||
| // | // | ||||
| // BtPhysTest | |||||
| // Lol Engine — Bullet physics test | |||||
| // | // | ||||
| // Copyright: (c) 2009-2013 Benjamin "Touky" Huet <huet.benjamin@gmail.com> | |||||
| // (c) 2012 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | |||||
| // © 2012—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -13,7 +19,7 @@ public: | |||||
| Nacl_PhysTest(bool editor = false); | Nacl_PhysTest(bool editor = false); | ||||
| virtual ~Nacl_PhysTest(); | virtual ~Nacl_PhysTest(); | ||||
| char const *GetName() { return "<Nacl_PhysTest>"; } | |||||
| std::string GetName() const { return "<Nacl_PhysTest>"; } | |||||
| protected: | protected: | ||||
| virtual void TickGame(float seconds); | virtual void TickGame(float seconds); | ||||
| @@ -1,11 +1,15 @@ | |||||
| // | // | ||||
| // Orbital | |||||
| // Lol Engine — Bullet physics test | |||||
| // | // | ||||
| // Copyright © 2009—2013 Cédric Lecacheur <jordx@free.fr> | // Copyright © 2009—2013 Cédric Lecacheur <jordx@free.fr> | ||||
| // © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | // © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | ||||
| // © 2012—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // © 2012—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // No licensing terms yet. All rights reserved. | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -141,13 +145,13 @@ public: | |||||
| if (!MeshRand.count()) | if (!MeshRand.count()) | ||||
| { | { | ||||
| array<String> colors_base = { "#add", "#dad", "#dda", "#daa", "#ada", "#aad" }; | |||||
| array<std::string> colors_base = { "#add", "#dad", "#dda", "#daa", "#ada", "#aad" }; | |||||
| MeshLimit << 0; | MeshLimit << 0; | ||||
| #if USE_BOX | #if USE_BOX | ||||
| { | { | ||||
| array<String> colors = colors_base; | |||||
| array<std::string> colors = colors_base; | |||||
| while (colors.count()) | while (colors.count()) | ||||
| { | { | ||||
| EasyMesh m; | EasyMesh m; | ||||
| @@ -196,7 +200,7 @@ public: | |||||
| MeshRand << "[tpbn tvnc sc#aaff aq 0 0]"; | MeshRand << "[tpbn tvnc sc#aaff aq 0 0]"; | ||||
| #else | #else | ||||
| { | { | ||||
| array<String> colors = colors_base; | |||||
| array<std::string> colors = colors_base; | |||||
| while (colors.count()) | while (colors.count()) | ||||
| { | { | ||||
| EasyMesh m; | EasyMesh m; | ||||
| @@ -220,7 +224,7 @@ public: | |||||
| #if USE_CONE | #if USE_CONE | ||||
| { | { | ||||
| array<String> colors = colors_base; | |||||
| array<std::string> colors = colors_base; | |||||
| while (colors.count()) | while (colors.count()) | ||||
| { | { | ||||
| EasyMesh m; | EasyMesh m; | ||||
| @@ -247,7 +251,7 @@ public: | |||||
| #if USE_CYLINDER | #if USE_CYLINDER | ||||
| { | { | ||||
| array<String> colors = colors_base; | |||||
| array<std::string> colors = colors_base; | |||||
| while (colors.count()) | while (colors.count()) | ||||
| { | { | ||||
| EasyMesh m; | EasyMesh m; | ||||
| @@ -275,7 +279,7 @@ public: | |||||
| #if USE_CAPSULE | #if USE_CAPSULE | ||||
| { | { | ||||
| array<String> colors = colors_base; | |||||
| array<std::string> colors = colors_base; | |||||
| while (colors.count()) | while (colors.count()) | ||||
| { | { | ||||
| EasyMesh m; | EasyMesh m; | ||||
| @@ -395,7 +399,7 @@ public: | |||||
| { | { | ||||
| } | } | ||||
| char const *GetName() { return "<PhysicsObject>"; } | |||||
| std::string GetName() const { return "<PhysicsObject>"; } | |||||
| protected: | protected: | ||||
| virtual void TickGame(float seconds) | virtual void TickGame(float seconds) | ||||
| @@ -1,13 +1,14 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine — Bullet physics test | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // (c) 2009-2013 Cédric Lecacheur <jordx@free.fr> | |||||
| // (c) 2009-2013 Benjamin "Touky" Huet <huet.benjamin@gmail.com> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | |||||
| // © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #if HAVE_CONFIG_H | #if HAVE_CONFIG_H | ||||
| @@ -125,7 +126,7 @@ void EasyCharacterController::BaseTransformChanged(const lol::mat4& PreviousMatr | |||||
| } | } | ||||
| //--- | //--- | ||||
| char const *EasyCharacterController::GetName() | |||||
| std::string EasyCharacterController::GetName() | |||||
| { | { | ||||
| return "<EasyCharacterController>"; | return "<EasyCharacterController>"; | ||||
| } | } | ||||
| @@ -1,10 +1,10 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine — Bullet physics test | |||||
| // | // | ||||
| // Copyright © 2009—2015 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | |||||
| // © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | |||||
| // © 2012—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // This library is free software. It comes without any warranty, to | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| // and/or modify it under the terms of the Do What the Fuck You Want | // and/or modify it under the terms of the Do What the Fuck You Want | ||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | // to Public License, Version 2, as published by the WTFPL Task Force. | ||||
| @@ -69,9 +69,11 @@ public: | |||||
| virtual void Jump(); | virtual void Jump(); | ||||
| virtual void SetTransform(const lol::vec3& base_location, const lol::quat& base_rotation); | virtual void SetTransform(const lol::vec3& base_location, const lol::quat& base_rotation); | ||||
| protected: | protected: | ||||
| virtual void BaseTransformChanged(const lol::mat4& PreviousMatrix, const lol::mat4& NewMatrix); | virtual void BaseTransformChanged(const lol::mat4& PreviousMatrix, const lol::mat4& NewMatrix); | ||||
| virtual char const *GetName(); | |||||
| virtual std::string GetName(); | |||||
| public: | public: | ||||
| virtual void TickGame(float seconds); | virtual void TickGame(float seconds); | ||||
| @@ -1,10 +1,10 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine — Bullet physics test | |||||
| // | // | ||||
| // Copyright © 2012—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | |||||
| // Copyright © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | |||||
| // © 2012—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // This library is free software. It comes without any warranty, to | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| // and/or modify it under the terms of the Do What the Fuck You Want | // and/or modify it under the terms of the Do What the Fuck You Want | ||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | // to Public License, Version 2, as published by the WTFPL Task Force. | ||||
| @@ -83,7 +83,7 @@ public: | |||||
| Exit(); | Exit(); | ||||
| } | } | ||||
| char const *GetName() { return "<Simulation>"; } | |||||
| std::string GetName() const { return "<Simulation>"; } | |||||
| public: | public: | ||||
| void Init() | void Init() | ||||
| @@ -2,6 +2,7 @@ | |||||
| // Lol Engine — Lua tutorial | // Lol Engine — Lua tutorial | ||||
| // | // | ||||
| // Copyright © 2014—2017 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | // Copyright © 2014—2017 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | ||||
| // © 2017—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -113,7 +114,7 @@ public: | |||||
| static int GlobalAddString(lua_State* l) | static int GlobalAddString(lua_State* l) | ||||
| { | { | ||||
| auto stack = LuaStack::Begin(l); | auto stack = LuaStack::Begin(l); | ||||
| auto s = stack.Get<String>(); | |||||
| auto s = stack.Get<std::string>(); | |||||
| s += "_added"; | s += "_added"; | ||||
| @@ -185,10 +186,10 @@ public: | |||||
| float testvalue_num = demo_loader->Get<float>("testvalue_num"); | float testvalue_num = demo_loader->Get<float>("testvalue_num"); | ||||
| int32_t testvalue_int = demo_loader->Get<int32_t>("testvalue_int"); | int32_t testvalue_int = demo_loader->Get<int32_t>("testvalue_int"); | ||||
| uint32_t testvalue_uint = demo_loader->Get<uint32_t>("testvalue_uint"); | uint32_t testvalue_uint = demo_loader->Get<uint32_t>("testvalue_uint"); | ||||
| String testvalue_str = demo_loader->Get<String>("testvalue_str"); | |||||
| std::string testvalue_str = demo_loader->Get<std::string>("testvalue_str"); | |||||
| //Grab string modified with function | //Grab string modified with function | ||||
| String function_return = demo_loader->Get<String>("function_return"); | |||||
| std::string function_return = demo_loader->Get<std::string>("function_return"); | |||||
| //Grab global values modified with DemoObject | //Grab global values modified with DemoObject | ||||
| int32_t loluademo_return = demo_loader->Get<int32_t>("loluademo_return"); | int32_t loluademo_return = demo_loader->Get<int32_t>("loluademo_return"); | ||||
| @@ -198,10 +199,10 @@ public: | |||||
| msg::info("Lua Vars: \ | msg::info("Lua Vars: \ | ||||
| testvalue_num: %.2f, testvalue_int: %i, testvalue_uint: %i, testvalue_str: %s.\n", | testvalue_num: %.2f, testvalue_int: %i, testvalue_uint: %i, testvalue_str: %s.\n", | ||||
| testvalue_num, testvalue_int, testvalue_uint, testvalue_str.C()); | |||||
| testvalue_num, testvalue_int, testvalue_uint, testvalue_str.c_str()); | |||||
| msg::info("Lua Vars: \ | msg::info("Lua Vars: \ | ||||
| function_return: %s, loluademo_return: %i, loluademo_inst_return: %.2f, loluademo_getx: %i, loluademo_inst->m_x: %i.\n", | function_return: %s, loluademo_return: %i, loluademo_inst_return: %.2f, loluademo_getx: %i, loluademo_inst->m_x: %i.\n", | ||||
| function_return.C(), loluademo_return, loluademo_inst_return, loluademo_getx, loluademo_inst->m_x); | |||||
| function_return.c_str(), loluademo_return, loluademo_inst_return, loluademo_getx, loluademo_inst->m_x); | |||||
| #define /***/ _LOLUA_ARG_1(a00) (float)a00 | #define /***/ _LOLUA_ARG_1(a00) (float)a00 | ||||
| #define /***/ _LOLUA_ARG_2(a00, a01) _LOLUA_ARG_1(a00), _LOLUA_ARG_1(a01) | #define /***/ _LOLUA_ARG_2(a00, a01) _LOLUA_ARG_1(a00), _LOLUA_ARG_1(a01) | ||||
| @@ -86,9 +86,9 @@ void sample::TickGame(float seconds) | |||||
| Entity::TickGame(seconds); | Entity::TickGame(seconds); | ||||
| } | } | ||||
| char const *sample::GetName() | |||||
| std::string sample::GetName() const | |||||
| { | { | ||||
| return data->m_name.c_str(); | |||||
| return data->m_name; | |||||
| } | } | ||||
| void sample::play() | void sample::play() | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -28,7 +30,7 @@ public: | |||||
| Camera(); | Camera(); | ||||
| ~Camera(); | ~Camera(); | ||||
| char const *GetName() { return "<camera>"; } | |||||
| std::string GetName() const { return "<camera>"; } | |||||
| //View functions | //View functions | ||||
| void SetView(mat4 const &view); | void SetView(mat4 const &view); | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -30,7 +32,7 @@ class DebugRecordData | |||||
| friend class DebugRecord; | friend class DebugRecord; | ||||
| private: | private: | ||||
| String m_path; | |||||
| std::string m_path; | |||||
| ivec2 m_size; | ivec2 m_size; | ||||
| int m_fps; | int m_fps; | ||||
| #if defined USE_PIPI | #if defined USE_PIPI | ||||
| @@ -42,7 +44,7 @@ private: | |||||
| * Public DebugRecord class | * Public DebugRecord class | ||||
| */ | */ | ||||
| DebugRecord::DebugRecord(String const &path, float fps) | |||||
| DebugRecord::DebugRecord(std::string const &path, float fps) | |||||
| : m_data(new DebugRecordData()) | : m_data(new DebugRecordData()) | ||||
| { | { | ||||
| Ticker::StartRecording(); | Ticker::StartRecording(); | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -25,7 +27,7 @@ class DebugRecordData; | |||||
| class DebugRecord : public Entity | class DebugRecord : public Entity | ||||
| { | { | ||||
| public: | public: | ||||
| DebugRecord(String const &path, float fps); | |||||
| DebugRecord(std::string const &path, float fps); | |||||
| virtual ~DebugRecord(); | virtual ~DebugRecord(); | ||||
| protected: | protected: | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -64,7 +64,7 @@ Dict::~Dict() | |||||
| delete data; | delete data; | ||||
| } | } | ||||
| int Dict::MakeSlot(char const *name) | |||||
| int Dict::MakeSlot(std::string const &name) | |||||
| { | { | ||||
| int slotid, empty = -1; | int slotid, empty = -1; | ||||
| @@ -80,7 +80,7 @@ int Dict::MakeSlot(char const *name) | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| char const *oldname = e->GetName(); | |||||
| char const *oldname = e->GetName().c_str(); | |||||
| if (*oldname == '<') | if (*oldname == '<') | ||||
| { | { | ||||
| while (*oldname && *oldname != '>') | while (*oldname && *oldname != '>') | ||||
| @@ -91,7 +91,7 @@ int Dict::MakeSlot(char const *name) | |||||
| oldname++; | oldname++; | ||||
| } | } | ||||
| if (!strcasecmp(name, oldname)) | |||||
| if (!strcasecmp(name.c_str(), oldname)) | |||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| @@ -137,7 +137,7 @@ void Dict::RemoveSlot(Entity *entity) | |||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| msg::error("removing unregistered entity %p (%s)\n", | msg::error("removing unregistered entity %p (%s)\n", | ||||
| entity, entity->GetName()); | |||||
| entity, entity->GetName().c_str()); | |||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -28,7 +30,7 @@ public: | |||||
| Dict(); | Dict(); | ||||
| ~Dict(); | ~Dict(); | ||||
| int MakeSlot(char const *name); | |||||
| int MakeSlot(std::string const &name); | |||||
| void RemoveSlot(int slotid); | void RemoveSlot(int slotid); | ||||
| void RemoveSlot(Entity *entity); | void RemoveSlot(Entity *entity); | ||||
| @@ -41,7 +41,7 @@ struct CSGUsageBase : public StructSafeEnum | |||||
| Xor | Xor | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[Union] = "Union"; | enum_map[Union] = "Union"; | ||||
| enum_map[Substract] = "Substract"; | enum_map[Substract] = "Substract"; | ||||
| @@ -65,7 +65,7 @@ struct MeshTransformBase : public StructSafeEnum | |||||
| Shear | Shear | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[Taper] = "Taper"; | enum_map[Taper] = "Taper"; | ||||
| enum_map[Twist] = "Twist"; | enum_map[Twist] = "Twist"; | ||||
| @@ -38,7 +38,7 @@ struct MeshBuildOperationBase : public StructSafeEnum | |||||
| All = 0xffff, | All = 0xffff, | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[ScaleWinding] = "ScaleWinding"; | enum_map[ScaleWinding] = "ScaleWinding"; | ||||
| enum_map[CommandRecording] = "CommandRecording"; | enum_map[CommandRecording] = "CommandRecording"; | ||||
| @@ -99,7 +99,7 @@ struct EasyMeshCmdTypeBase : public StructSafeEnum | |||||
| AppendCog, | AppendCog, | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[MeshCsg] = "MeshCsg"; | enum_map[MeshCsg] = "MeshCsg"; | ||||
| enum_map[LoopStart] = "LoopStart"; | enum_map[LoopStart] = "LoopStart"; | ||||
| @@ -160,7 +160,7 @@ struct MeshTypeBase : public StructSafeEnum | |||||
| MAX | MAX | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[Triangle] = "Triangle"; | enum_map[Triangle] = "Triangle"; | ||||
| enum_map[Quad] = "Quad"; | enum_map[Quad] = "Quad"; | ||||
| @@ -200,7 +200,7 @@ struct TexCoordBuildTypeBase : public StructSafeEnum | |||||
| Max | Max | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[TriangleDefault] = "TriangleDefault"; | enum_map[TriangleDefault] = "TriangleDefault"; | ||||
| enum_map[QuadDefault] = "QuadDefault"; | enum_map[QuadDefault] = "QuadDefault"; | ||||
| @@ -235,7 +235,7 @@ struct MeshFaceTypeBase : public StructSafeEnum | |||||
| MAX | MAX | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[BoxFront] = "BoxFront"; | enum_map[BoxFront] = "BoxFront"; | ||||
| enum_map[QuadDefault] = "QuadDefault"; | enum_map[QuadDefault] = "QuadDefault"; | ||||
| @@ -261,7 +261,7 @@ struct TexCoordPosBase : public StructSafeEnum | |||||
| TR // Top Right | TR // Top Right | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[BL] = "BL"; | enum_map[BL] = "BL"; | ||||
| enum_map[BR] = "BR"; | enum_map[BR] = "BR"; | ||||
| @@ -512,7 +512,7 @@ struct VDictTypeBase : public StructSafeEnum | |||||
| Master = -1, | Master = -1, | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[DoesNotExist] = "DoesNotExist"; | enum_map[DoesNotExist] = "DoesNotExist"; | ||||
| enum_map[Alone] = "Alone"; | enum_map[Alone] = "Alone"; | ||||
| @@ -2,7 +2,7 @@ | |||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | // Copyright © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | ||||
| // © 2010—2017 Sam Hocevar <sam@hocevar.net> | |||||
| // © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // © 2009—2013 Cédric Lecacheur <jordx@free.fr> | // © 2009—2013 Cédric Lecacheur <jordx@free.fr> | ||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| @@ -93,9 +93,9 @@ GpuShaderData::~GpuShaderData() | |||||
| } | } | ||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
| void GpuShaderData::AddUniform(const lol::String &new_uniform) | |||||
| void GpuShaderData::AddUniform(std::string const &new_uniform) | |||||
| { | { | ||||
| m_shader_uniform.push(new_uniform, m_shader->GetUniformLocation(new_uniform.C())); | |||||
| m_shader_uniform.push(new_uniform, m_shader->GetUniformLocation(new_uniform)); | |||||
| } | } | ||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
| @@ -105,7 +105,7 @@ void GpuShaderData::AddAttribute(VertexUsage usage, int index) | |||||
| } | } | ||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
| ShaderUniform const *GpuShaderData::GetUniform(const lol::String &uniform) | |||||
| ShaderUniform const *GpuShaderData::GetUniform(std::string const &uniform) | |||||
| { | { | ||||
| for (int i = 0; i < m_shader_uniform.count(); ++i) | for (int i = 0; i < m_shader_uniform.count(); ++i) | ||||
| if (m_shader_uniform[i].m1 == uniform) | if (m_shader_uniform[i].m1 == uniform) | ||||
| @@ -159,17 +159,18 @@ DefaultShaderData::DefaultShaderData(uint16_t vert_decl_flags, Shader* shader, b | |||||
| SetupDefaultData(with_UV); | SetupDefaultData(with_UV); | ||||
| } | } | ||||
| static const String DefaultUniforms[8] = | |||||
| static std::string const DefaultUniforms[8] = | |||||
| { | { | ||||
| String("u_lights"), | |||||
| String("u_model"), | |||||
| String("u_modelview"), | |||||
| String("u_view"), | |||||
| String("u_inv_view"), | |||||
| String("u_proj"), | |||||
| String("u_normalmat"), | |||||
| String("u_damage") | |||||
| "u_lights", | |||||
| "u_model", | |||||
| "u_modelview", | |||||
| "u_view", | |||||
| "u_inv_view", | |||||
| "u_proj", | |||||
| "u_normalmat", | |||||
| "u_damage", | |||||
| }; | }; | ||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
| void DefaultShaderData::StoreUniformNames() | void DefaultShaderData::StoreUniformNames() | ||||
| { | { | ||||
| @@ -2,7 +2,7 @@ | |||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | // Copyright © 2009—2013 Benjamin “Touky” Huet <huet.benjamin@gmail.com> | ||||
| // © 2010—2017 Sam Hocevar <sam@hocevar.net> | |||||
| // © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // © 2009—2013 Cédric Lecacheur <jordx@free.fr> | // © 2009—2013 Cédric Lecacheur <jordx@free.fr> | ||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| @@ -14,6 +14,7 @@ | |||||
| #pragma once | #pragma once | ||||
| #include <string> | |||||
| #include <map> | #include <map> | ||||
| namespace lol | namespace lol | ||||
| @@ -31,7 +32,7 @@ struct MeshRenderBase : public StructSafeEnum | |||||
| IgnoreRender, | IgnoreRender, | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[NeedData] = "NeedData"; | enum_map[NeedData] = "NeedData"; | ||||
| enum_map[NeedConvert] = "NeedConvert"; | enum_map[NeedConvert] = "NeedConvert"; | ||||
| @@ -81,20 +82,20 @@ public: | |||||
| GpuShaderData(uint16_t vert_decl_flags, Shader* shader, DebugRenderMode render_mode); | GpuShaderData(uint16_t vert_decl_flags, Shader* shader, DebugRenderMode render_mode); | ||||
| virtual ~GpuShaderData(); | virtual ~GpuShaderData(); | ||||
| //-- | //-- | ||||
| void AddUniform(const lol::String &new_uniform); | |||||
| void AddUniform(std::string const &new_uniform); | |||||
| void AddAttribute(VertexUsage usage, int index); | void AddAttribute(VertexUsage usage, int index); | ||||
| ShaderUniform const *GetUniform(const lol::String &uniform); | |||||
| ShaderUniform const *GetUniform(std::string const &uniform); | |||||
| ShaderAttrib const *GetAttribute(VertexUsage usage, int index); | ShaderAttrib const *GetAttribute(VertexUsage usage, int index); | ||||
| //-- | //-- | ||||
| virtual void SetupShaderDatas(mat4 const &model) { UNUSED(model); } | virtual void SetupShaderDatas(mat4 const &model) { UNUSED(model); } | ||||
| //-- | //-- | ||||
| protected: | protected: | ||||
| uint16_t m_vert_decl_flags; | |||||
| Shader* m_shader; | |||||
| int m_render_mode; | |||||
| array<lol::String, ShaderUniform> m_shader_uniform; | |||||
| array<ShaderAttrib> m_shader_attrib; | |||||
| uint16_t m_vert_decl_flags; | |||||
| Shader *m_shader; | |||||
| int m_render_mode; | |||||
| array<std::string, ShaderUniform> m_shader_uniform; | |||||
| array<ShaderAttrib> m_shader_attrib; | |||||
| }; | }; | ||||
| class DefaultShaderData : public GpuShaderData | class DefaultShaderData : public GpuShaderData | ||||
| @@ -109,7 +110,7 @@ public: | |||||
| void SetupDefaultData(bool with_UV); | void SetupDefaultData(bool with_UV); | ||||
| virtual void SetupShaderDatas(mat4 const &model); | virtual void SetupShaderDatas(mat4 const &model); | ||||
| //-- | //-- | ||||
| array<String> m_uniform_names; | |||||
| array<std::string> m_uniform_names; | |||||
| }; | }; | ||||
| class GpuEasyMeshData | class GpuEasyMeshData | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -44,7 +44,7 @@ Entity::~Entity() | |||||
| #endif | #endif | ||||
| } | } | ||||
| char const *Entity::GetName() | |||||
| std::string Entity::GetName() const | |||||
| { | { | ||||
| return "<entity>"; | return "<entity>"; | ||||
| } | } | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -50,7 +50,7 @@ class Entity | |||||
| friend class Emcee; | friend class Emcee; | ||||
| public: | public: | ||||
| virtual char const *GetName(); | |||||
| virtual std::string GetName() const; | |||||
| inline bool IsTicked() { return !!m_ref && !m_autorelease; } | inline bool IsTicked() { return !!m_ref && !m_autorelease; } | ||||
| protected: | protected: | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2017 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -114,7 +114,7 @@ void Ticker::Ref(Entity *entity) | |||||
| ASSERT(entity, "dereferencing nullptr entity\n"); | ASSERT(entity, "dereferencing nullptr entity\n"); | ||||
| ASSERT(!entity->m_destroy, | ASSERT(!entity->m_destroy, | ||||
| "referencing entity scheduled for destruction %s\n", | "referencing entity scheduled for destruction %s\n", | ||||
| entity->GetName()); | |||||
| entity->GetName().c_str()); | |||||
| if (entity->m_autorelease) | if (entity->m_autorelease) | ||||
| { | { | ||||
| @@ -139,9 +139,9 @@ int Ticker::Unref(Entity *entity) | |||||
| { | { | ||||
| ASSERT(entity, "dereferencing null entity\n"); | ASSERT(entity, "dereferencing null entity\n"); | ||||
| ASSERT(entity->m_ref > 0, "dereferencing unreferenced entity %s\n", | ASSERT(entity->m_ref > 0, "dereferencing unreferenced entity %s\n", | ||||
| entity->GetName()); | |||||
| entity->GetName().c_str()); | |||||
| ASSERT(!entity->m_autorelease, "dereferencing autoreleased entity %s\n", | ASSERT(!entity->m_autorelease, "dereferencing autoreleased entity %s\n", | ||||
| entity->GetName()); | |||||
| entity->GetName().c_str()); | |||||
| return --entity->m_ref; | return --entity->m_ref; | ||||
| } | } | ||||
| @@ -223,7 +223,7 @@ void TickerData::GameThreadTick() | |||||
| { | { | ||||
| Entity *e = data->m_list[g][i]; | Entity *e = data->m_list[g][i]; | ||||
| msg::debug(" \\-- [%p] %s (m_ref %d, destroy %d)\n", | msg::debug(" \\-- [%p] %s (m_ref %d, destroy %d)\n", | ||||
| e, e->GetName(), e->m_ref, e->m_destroy); | |||||
| e, e->GetName().c_str(), e->m_ref, e->m_destroy); | |||||
| } | } | ||||
| } | } | ||||
| #endif | #endif | ||||
| @@ -276,7 +276,7 @@ void TickerData::GameThreadTick() | |||||
| if (e->m_ref) | if (e->m_ref) | ||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| msg::error("poking %s\n", e->GetName()); | |||||
| msg::error("poking %s\n", e->GetName().c_str()); | |||||
| #endif | #endif | ||||
| e->m_ref--; | e->m_ref--; | ||||
| n++; | n++; | ||||
| @@ -401,14 +401,14 @@ void TickerData::GameThreadTick() | |||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (e->m_tickstate != Entity::STATE_IDLE) | if (e->m_tickstate != Entity::STATE_IDLE) | ||||
| msg::error("entity %s [%p] not idle for game tick\n", | msg::error("entity %s [%p] not idle for game tick\n", | ||||
| e->GetName(), e); | |||||
| e->GetName().c_str(), e); | |||||
| e->m_tickstate = Entity::STATE_PRETICK_GAME; | e->m_tickstate = Entity::STATE_PRETICK_GAME; | ||||
| #endif | #endif | ||||
| e->TickGame(data->deltatime); | e->TickGame(data->deltatime); | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (e->m_tickstate != Entity::STATE_POSTTICK_GAME) | if (e->m_tickstate != Entity::STATE_POSTTICK_GAME) | ||||
| msg::error("entity %s [%p] missed super game tick\n", | msg::error("entity %s [%p] missed super game tick\n", | ||||
| e->GetName(), e); | |||||
| e->GetName().c_str(), e); | |||||
| e->m_tickstate = Entity::STATE_IDLE; | e->m_tickstate = Entity::STATE_IDLE; | ||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -455,14 +455,14 @@ void TickerData::DrawThreadTick() | |||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (e->m_tickstate != Entity::STATE_IDLE) | if (e->m_tickstate != Entity::STATE_IDLE) | ||||
| msg::error("entity %s [%p] not idle for draw tick\n", | msg::error("entity %s [%p] not idle for draw tick\n", | ||||
| e->GetName(), e); | |||||
| e->GetName().c_str(), e); | |||||
| e->m_tickstate = Entity::STATE_PRETICK_DRAW; | e->m_tickstate = Entity::STATE_PRETICK_DRAW; | ||||
| #endif | #endif | ||||
| e->TickDraw(data->deltatime, scene); | e->TickDraw(data->deltatime, scene); | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (e->m_tickstate != Entity::STATE_POSTTICK_DRAW) | if (e->m_tickstate != Entity::STATE_POSTTICK_DRAW) | ||||
| msg::error("entity %s [%p] missed super draw tick\n", | msg::error("entity %s [%p] missed super draw tick\n", | ||||
| e->GetName(), e); | |||||
| e->GetName().c_str(), e); | |||||
| e->m_tickstate = Entity::STATE_IDLE; | e->m_tickstate = Entity::STATE_IDLE; | ||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -32,7 +34,7 @@ WorldEntity::~WorldEntity() | |||||
| { | { | ||||
| } | } | ||||
| char const *WorldEntity::GetName() | |||||
| std::string WorldEntity::GetName() const | |||||
| { | { | ||||
| return "<worldentity>"; | return "<worldentity>"; | ||||
| } | } | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -25,7 +27,7 @@ namespace lol | |||||
| class WorldEntity : public Entity | class WorldEntity : public Entity | ||||
| { | { | ||||
| public: | public: | ||||
| virtual char const *GetName(); | |||||
| virtual std::string GetName() const; | |||||
| public: | public: | ||||
| box3 m_aabb; | box3 m_aabb; | ||||
| @@ -1,12 +1,14 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // 2013 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // 2013 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -26,7 +28,7 @@ class FontData | |||||
| friend class Font; | friend class Font; | ||||
| private: | private: | ||||
| String m_name; | |||||
| std::string m_name; | |||||
| TileSet *tileset; | TileSet *tileset; | ||||
| ivec2 size; | ivec2 size; | ||||
| }; | }; | ||||
| @@ -35,10 +37,10 @@ private: | |||||
| * Public Font class | * Public Font class | ||||
| */ | */ | ||||
| Font::Font(char const *path) | |||||
| Font::Font(std::string const &path) | |||||
| : data(new FontData()) | : data(new FontData()) | ||||
| { | { | ||||
| data->m_name = String("<font> ") + path; | |||||
| data->m_name = "<font> " + path; | |||||
| data->tileset = Tiler::Register(path, ivec2::zero, ivec2(16)); | data->tileset = Tiler::Register(path, ivec2::zero, ivec2(16)); | ||||
| data->size = data->tileset->GetTileSize(0); | data->size = data->tileset->GetTileSize(0); | ||||
| @@ -63,17 +65,17 @@ void Font::TickDraw(float seconds, Scene &scene) | |||||
| } | } | ||||
| } | } | ||||
| char const *Font::GetName() | |||||
| std::string Font::GetName() const | |||||
| { | { | ||||
| return data->m_name.C(); | |||||
| return data->m_name; | |||||
| } | } | ||||
| void Font::Print(Scene &scene, vec3 pos, char const *str, vec2 scale, float spacing) | |||||
| void Font::Print(Scene &scene, vec3 pos, std::string const &str, vec2 scale, float spacing) | |||||
| { | { | ||||
| float origin_x = pos.x; | float origin_x = pos.x; | ||||
| while (*str) | |||||
| for (int i = 0; i < (int)str.length(); ++i) | |||||
| { | { | ||||
| uint32_t ch = (uint8_t)*str++; | |||||
| uint32_t ch = str[i]; | |||||
| switch (ch) | switch (ch) | ||||
| { | { | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -25,17 +27,17 @@ class FontData; | |||||
| class Font : public Entity | class Font : public Entity | ||||
| { | { | ||||
| public: | public: | ||||
| Font(char const *path); | |||||
| Font(std::string const &path); | |||||
| ~Font(); | ~Font(); | ||||
| protected: | protected: | ||||
| /* Inherited from Entity */ | /* Inherited from Entity */ | ||||
| virtual char const *GetName(); | |||||
| virtual std::string GetName() const; | |||||
| virtual void TickDraw(float seconds, Scene &scene); | virtual void TickDraw(float seconds, Scene &scene); | ||||
| public: | public: | ||||
| /* New methods */ | /* New methods */ | ||||
| void Print(Scene &scene, vec3 pos, char const *str, vec2 scale = vec2(1.0f), float spacing = 0.0f); | |||||
| void Print(Scene &scene, vec3 pos, std::string const &str, vec2 scale = vec2(1.0f), float spacing = 0.0f); | |||||
| ivec2 GetSize() const; | ivec2 GetSize() const; | ||||
| private: | private: | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -32,7 +34,7 @@ static ForgeData * const data = &forgedata; | |||||
| * Public Forge class | * Public Forge class | ||||
| */ | */ | ||||
| int Forge::Register(char const *path) | |||||
| int Forge::Register(std::string const &path) | |||||
| { | { | ||||
| int id = data->fonts.MakeSlot(path); | int id = data->fonts.MakeSlot(path); | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -24,7 +26,7 @@ namespace lol | |||||
| class Forge | class Forge | ||||
| { | { | ||||
| public: | public: | ||||
| static int Register(char const *path); | |||||
| static int Register(std::string const &path); | |||||
| static void Deregister(int id); | static void Deregister(int id); | ||||
| static Font *GetFont(int id); | static Font *GetFont(int id); | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -28,7 +30,7 @@ public: | |||||
| Gradient(vec3 aa, vec3 bb); | Gradient(vec3 aa, vec3 bb); | ||||
| virtual ~Gradient(); | virtual ~Gradient(); | ||||
| char const *GetName() { return "<gradient>"; } | |||||
| std::string GetName() const { return "<gradient>"; } | |||||
| protected: | protected: | ||||
| virtual void TickGame(float seconds); | virtual void TickGame(float seconds); | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2014 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -107,25 +109,25 @@ uint16_t Color::ToRGB16(vec4 c) | |||||
| /* | /* | ||||
| * Conversion from colours to hexadecimal | * Conversion from colours to hexadecimal | ||||
| */ | */ | ||||
| vec4 Color::C8BppHexString(String s) | |||||
| vec4 Color::C8BppHexString(std::string const &s) | |||||
| { | { | ||||
| String c = s[0] == '#' ? &s[1] : s; | |||||
| uint32_t tmp = std::strtol(c.C(), nullptr, 16); | |||||
| if (c.count() == 3) | |||||
| std::string c = s[0] == '#' ? &s[1] : s; | |||||
| uint32_t tmp = std::strtol(c.c_str(), nullptr, 16); | |||||
| if (c.length() == 3) | |||||
| { | { | ||||
| tmp = 0x11000000u * (tmp >> 8) | tmp = 0x11000000u * (tmp >> 8) | ||||
| | 0x00110000u * ((tmp >> 4) & 0xf) | | 0x00110000u * ((tmp >> 4) & 0xf) | ||||
| | 0x00001100u * (tmp & 0xf) | | 0x00001100u * (tmp & 0xf) | ||||
| | 0x000000ffu; | | 0x000000ffu; | ||||
| } | } | ||||
| else if (c.count() == 4) | |||||
| else if (c.length() == 4) | |||||
| { | { | ||||
| tmp = 0x11000000u * (tmp >> 12) | tmp = 0x11000000u * (tmp >> 12) | ||||
| | 0x00110000u * ((tmp >> 8) & 0xf) | | 0x00110000u * ((tmp >> 8) & 0xf) | ||||
| | 0x00001100u * ((tmp >> 4) & 0xf) | | 0x00001100u * ((tmp >> 4) & 0xf) | ||||
| | 0x00000011u * (tmp & 0xf); | | 0x00000011u * (tmp & 0xf); | ||||
| } | } | ||||
| else if (c.count() == 6) | |||||
| else if (c.length() == 6) | |||||
| { | { | ||||
| tmp = 0xffu | 0x100u * tmp; | tmp = 0xffu | 0x100u * tmp; | ||||
| } | } | ||||
| @@ -79,7 +79,7 @@ public: | |||||
| Light(); | Light(); | ||||
| ~Light(); | ~Light(); | ||||
| char const *GetName() { return "<light>"; } | |||||
| std::string GetName() const { return "<light>"; } | |||||
| void SetType(LightType const &type); | void SetType(LightType const &type); | ||||
| LightType GetType(); | LightType GetType(); | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2016 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -35,7 +35,7 @@ public: | |||||
| protected: | protected: | ||||
| /* Inherited from Entity */ | /* Inherited from Entity */ | ||||
| virtual char const *GetName(); | |||||
| virtual std::string GetName() const; | |||||
| virtual void TickGame(float seconds); | virtual void TickGame(float seconds); | ||||
| public: | public: | ||||
| @@ -44,232 +44,3 @@ std::string vformat(char const *format, va_list ap); | |||||
| } /* namespace lol */ | } /* namespace lol */ | ||||
| // | |||||
| // The deprecated String class | |||||
| // --------------------------- | |||||
| // A very simple String class, based on Array. The most interesting | |||||
| // thing in there was LOL_ATTR_NODISCARD but apart from that there was | |||||
| // no real point in using our own class. Phase this out. | |||||
| // | |||||
| #include <lol/base/assert.h> | |||||
| #include <lol/base/array.h> | |||||
| #include <cstring> | |||||
| #include <cstdarg> | |||||
| namespace lol | |||||
| { | |||||
| class LOL_ATTR_NODISCARD String : protected array<char> | |||||
| { | |||||
| private: | |||||
| typedef array<char> super; | |||||
| public: | |||||
| inline String() | |||||
| : super() | |||||
| { | |||||
| push('\0'); | |||||
| } | |||||
| inline String(char const *str) | |||||
| : super() | |||||
| { | |||||
| using namespace std; | |||||
| ASSERT(str); | |||||
| resize((int)strlen(str)); | |||||
| memcpy(&(*this)[0], str, count() + 1); | |||||
| } | |||||
| inline String(char const *str, int item_count) | |||||
| : super() | |||||
| { | |||||
| using namespace std; | |||||
| ASSERT(str); | |||||
| resize(item_count); | |||||
| memcpy(&(*this)[0], str, item_count); | |||||
| ((super &)*this)[item_count] = '\0'; | |||||
| } | |||||
| /* Legacy constructor for std::string */ | |||||
| inline String(std::string const &s) | |||||
| : String(s.c_str()) | |||||
| { | |||||
| } | |||||
| inline String(String const &s) | |||||
| : super((super const &)s) | |||||
| { | |||||
| } | |||||
| inline char &operator [](int n) | |||||
| { | |||||
| /* Allow n == count() because we might have reasonable reasons | |||||
| * to access that hidden null character. We cast to unsigned so | |||||
| * as to avoid a harmless message from the GCC optimiser. */ | |||||
| ASSERT(n >= 0); | |||||
| ASSERT((unsigned)n <= (unsigned)count()); | |||||
| return ((super &)*this)[n]; | |||||
| } | |||||
| inline char const &operator [](int n) const | |||||
| { | |||||
| ASSERT(n >= 0); | |||||
| ASSERT((unsigned)n <= (unsigned)count()); | |||||
| return ((super const &)*this)[n]; | |||||
| } | |||||
| inline char &last() | |||||
| { | |||||
| ASSERT(count() > 0); | |||||
| return (*this)[count() - 1]; | |||||
| } | |||||
| inline char const &last() const | |||||
| { | |||||
| ASSERT(count() > 0); | |||||
| return (*this)[count() - 1]; | |||||
| } | |||||
| inline int count() const | |||||
| { | |||||
| return ((super const &)*this).count() - 1; | |||||
| } | |||||
| /* Return a C string */ | |||||
| inline char const *C() const | |||||
| { | |||||
| return &(*this)[0]; | |||||
| } | |||||
| /* Non-const version; make sure to not overflow the internal array */ | |||||
| inline char *C() | |||||
| { | |||||
| return &(*this)[0]; | |||||
| } | |||||
| /* Does not initialise the newly allocated characters */ | |||||
| void resize(int item_count) | |||||
| { | |||||
| ASSERT(item_count >= 0); | |||||
| ((super &)*this).resize(item_count + 1); | |||||
| ((super &)*this).last() = '\0'; | |||||
| } | |||||
| String sub(int start, int item_count = -1) const | |||||
| { | |||||
| ASSERT(start >= 0); | |||||
| if (start >= count()) | |||||
| return String(); | |||||
| if (item_count < 0 || item_count >= count() - start) | |||||
| item_count = count() - start; | |||||
| return String(&(*this)[start], item_count); | |||||
| } | |||||
| int replace(char const old_token, char const new_token, | |||||
| bool all_occurrences = false) | |||||
| { | |||||
| using namespace std; | |||||
| int res = 0; | |||||
| char *tmp = NULL; | |||||
| while ((tmp = strrchr(C(), old_token))) | |||||
| { | |||||
| *tmp = new_token; | |||||
| res++; | |||||
| if (!all_occurrences) | |||||
| break; | |||||
| } | |||||
| return res; | |||||
| } | |||||
| inline String operator +(String const &s) const | |||||
| { | |||||
| String ret(*this); | |||||
| return ret += s; | |||||
| } | |||||
| inline String operator +(char c) const | |||||
| { | |||||
| String ret(*this); | |||||
| return ret += c; | |||||
| } | |||||
| inline String& operator +=(String const &s) | |||||
| { | |||||
| using namespace std; | |||||
| int old_count = count(); | |||||
| resize(count() + s.count()); | |||||
| memcpy(&(*this)[old_count], &s[0], count() - old_count); | |||||
| return *this; | |||||
| } | |||||
| inline String& operator +=(char c) | |||||
| { | |||||
| ((super &)*this).last() = c; | |||||
| ((super &)*this).push('\0'); | |||||
| return *this; | |||||
| } | |||||
| inline bool operator ==(String const &s) const | |||||
| { | |||||
| using namespace std; | |||||
| return count() == s.count() | |||||
| && memcmp(C(), s.C(), count()) == 0; | |||||
| } | |||||
| inline bool operator !=(String const &s) const | |||||
| { | |||||
| return !(*this == s); | |||||
| } | |||||
| inline bool operator ==(char const* sz) const | |||||
| { | |||||
| /* We parse the C string twice because of strlen + memcmp | |||||
| * but it's probably still faster than doing it by hand. */ | |||||
| using namespace std; | |||||
| int sz_len = (int)strlen(sz); | |||||
| return count() == sz_len | |||||
| && memcmp(C(), sz, sz_len) == 0; | |||||
| } | |||||
| inline bool operator !=(char const* sz) const | |||||
| { | |||||
| return !(*this == sz); | |||||
| } | |||||
| inline bool operator <(String const & s) const | |||||
| { | |||||
| using namespace std; | |||||
| int res = memcmp(C(), s.C(), count() < s.count() ? count() : s.count()); | |||||
| if (!res) | |||||
| return count() < s.count(); | |||||
| return res < 0; | |||||
| } | |||||
| }; | |||||
| inline String operator +(char c, String const &s) | |||||
| { | |||||
| return String() + c + s; | |||||
| } | |||||
| inline String operator +(char const *sz, String const &s) | |||||
| { | |||||
| return String(sz) + s; | |||||
| } | |||||
| inline bool operator ==(char const* sz, String const &s) | |||||
| { | |||||
| return s == sz; | |||||
| } | |||||
| inline bool operator !=(char const* sz, String const &s) | |||||
| { | |||||
| return s != sz; | |||||
| } | |||||
| } /* namespace lol */ | |||||
| @@ -54,7 +54,7 @@ struct MeshPrimitiveBase : public StructSafeEnum | |||||
| Lines, | Lines, | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[Triangles] = "Triangles"; | enum_map[Triangles] = "Triangles"; | ||||
| enum_map[TriangleStrips] = "TriangleStrips"; | enum_map[TriangleStrips] = "TriangleStrips"; | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -345,7 +345,7 @@ public: | |||||
| /* | /* | ||||
| * Convert hex strings to colors. | * Convert hex strings to colors. | ||||
| */ | */ | ||||
| static vec4 C8BppHexString(String c); | |||||
| static vec4 C8BppHexString(std::string const &c); | |||||
| /* | /* | ||||
| * Some predefined colours | * Some predefined colours | ||||
| @@ -37,7 +37,7 @@ struct AxisBase : public StructSafeEnum | |||||
| X = 0, Y, Z, MAX, XY = 2, XYZ = 3, | X = 0, Y, Z, MAX, XY = 2, XYZ = 3, | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[X] = "X"; | enum_map[X] = "X"; | ||||
| enum_map[Y] = "Y"; | enum_map[Y] = "Y"; | ||||
| @@ -58,7 +58,7 @@ struct DirectionBase : public StructSafeEnum | |||||
| Up = 0, Down, Left, Right, MAX, | Up = 0, Down, Left, Right, MAX, | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[Up] = "Up"; | enum_map[Up] = "Up"; | ||||
| enum_map[Down] = "Down"; | enum_map[Down] = "Down"; | ||||
| @@ -260,7 +260,7 @@ struct RayIntersectBase : public StructSafeEnum | |||||
| }; | }; | ||||
| //LOL_DECLARE_ENUM_METHODS(RayIntersectBase) | //LOL_DECLARE_ENUM_METHODS(RayIntersectBase) | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[Nothing] = "Nothing"; | enum_map[Nothing] = "Nothing"; | ||||
| enum_map[All] = "All"; | enum_map[All] = "All"; | ||||
| @@ -325,7 +325,7 @@ struct PlaneIntersectionBase : public StructSafeEnum | |||||
| Back, Front, Plane, | Back, Front, Plane, | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| virtual bool BuildEnumMap(std::map<int64_t, String>& enum_map) | |||||
| virtual bool BuildEnumMap(std::map<int64_t, std::string>& enum_map) | |||||
| { | { | ||||
| enum_map[Back] = "Back"; | enum_map[Back] = "Back"; | ||||
| enum_map[Front] = "Front"; | enum_map[Front] = "Front"; | ||||
| @@ -80,7 +80,7 @@ class ThreadJob | |||||
| protected: | protected: | ||||
| inline ThreadJob(ThreadJobType type) : m_type(type) {} | inline ThreadJob(ThreadJobType type) : m_type(type) {} | ||||
| public: | public: | ||||
| char const *GetName() { return "<ThreadJob>"; } | |||||
| std::string GetName() const { return "<ThreadJob>"; } | |||||
| inline ThreadJob() : m_type(ThreadJobType::NONE) {} | inline ThreadJob() : m_type(ThreadJobType::NONE) {} | ||||
| virtual ~ThreadJob() {} | virtual ~ThreadJob() {} | ||||
| @@ -176,7 +176,7 @@ public: | |||||
| //------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
| LolImGui(); | LolImGui(); | ||||
| ~LolImGui(); | ~LolImGui(); | ||||
| char const *GetName() { return "<LolImGui>"; } | |||||
| std::string GetName() const { return "<LolImGui>"; } | |||||
| //------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
| static void Init(); | static void Init(); | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -104,9 +104,9 @@ void SubMesh::SetIndexBuffer(IndexBuffer* ibo) | |||||
| m_ibo = ibo; | m_ibo = ibo; | ||||
| } | } | ||||
| void SubMesh::AddTexture(const char* name, Texture* texture) | |||||
| void SubMesh::AddTexture(std::string const &name, Texture* texture) | |||||
| { | { | ||||
| m_textures.push(String(name), texture); | |||||
| m_textures.push(name, texture); | |||||
| } | } | ||||
| void SubMesh::Render() | void SubMesh::Render() | ||||
| @@ -142,7 +142,7 @@ void SubMesh::Render() | |||||
| for (int i = 0; i < m_textures.count(); ++i) | for (int i = 0; i < m_textures.count(); ++i) | ||||
| { | { | ||||
| // TODO: might be good to cache this | // TODO: might be good to cache this | ||||
| ShaderUniform u_tex = m_shader->GetUniformLocation(m_textures[i].m1.C()); | |||||
| ShaderUniform u_tex = m_shader->GetUniformLocation(m_textures[i].m1); | |||||
| m_shader->SetUniform(u_tex, m_textures[i].m2->GetTextureUniform(), i); | m_shader->SetUniform(u_tex, m_textures[i].m2->GetTextureUniform(), i); | ||||
| } | } | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2016 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -94,7 +94,7 @@ public: | |||||
| void SetVertexDeclaration(VertexDeclaration *vdecl); | void SetVertexDeclaration(VertexDeclaration *vdecl); | ||||
| void SetVertexBuffer(int index, VertexBuffer* vbo); | void SetVertexBuffer(int index, VertexBuffer* vbo); | ||||
| void SetIndexBuffer(IndexBuffer* ibo); | void SetIndexBuffer(IndexBuffer* ibo); | ||||
| void AddTexture(const char* name, Texture* texture); | |||||
| void AddTexture(std::string const &name, Texture* texture); | |||||
| protected: | protected: | ||||
| void Render(); | void Render(); | ||||
| @@ -105,7 +105,7 @@ protected: | |||||
| array<VertexBuffer *> m_vbos; | array<VertexBuffer *> m_vbos; | ||||
| IndexBuffer *m_ibo; | IndexBuffer *m_ibo; | ||||
| array<String, Texture*> m_textures; | |||||
| array<std::string, Texture*> m_textures; | |||||
| }; | }; | ||||
| } /* namespace lol */ | } /* namespace lol */ | ||||
| @@ -89,7 +89,7 @@ public: | |||||
| MessageService(); | MessageService(); | ||||
| ~MessageService(); | ~MessageService(); | ||||
| static char const *GetName() { return "<messageservice>"; } | |||||
| static std::string GetName() { return "<messageservice>"; } | |||||
| //Setup/Destroy | //Setup/Destroy | ||||
| static void Setup(); | static void Setup(); | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2002—2016 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2002—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -44,7 +44,7 @@ struct getopt_private | |||||
| int m_argc; | int m_argc; | ||||
| char * const *m_argv; | char * const *m_argv; | ||||
| String m_optstring; | |||||
| std::string m_optstring; | |||||
| array<optdesc> m_opts; | array<optdesc> m_opts; | ||||
| }; | }; | ||||
| @@ -90,7 +90,7 @@ int getopt::parse() | |||||
| optind = this->index; | optind = this->index; | ||||
| optarg = this->arg; | optarg = this->arg; | ||||
| m_private->m_opts.push(getopt_private::optdesc { nullptr, 0, nullptr, 0 }); | m_private->m_opts.push(getopt_private::optdesc { nullptr, 0, nullptr, 0 }); | ||||
| ret = getopt_long(m_private->m_argc, m_private->m_argv, m_private->m_optstring.C(), | |||||
| ret = getopt_long(m_private->m_argc, m_private->m_argv, m_private->m_optstring.c_str(), | |||||
| (option const *)m_private->m_opts.data(), &longindex); | (option const *)m_private->m_opts.data(), &longindex); | ||||
| this->index = optind; | this->index = optind; | ||||
| this->arg = optarg; | this->arg = optarg; | ||||
| @@ -117,7 +117,7 @@ int getopt::parse() | |||||
| if (ret == '\0') | if (ret == '\0') | ||||
| return -1; | return -1; | ||||
| tmp = strchr(m_private->m_optstring.C(), ret); | |||||
| tmp = strchr(m_private->m_optstring.c_str(), ret); | |||||
| if (!tmp || ret == ':') | if (!tmp || ret == ':') | ||||
| return '?'; | return '?'; | ||||
| @@ -32,14 +32,19 @@ class FileUpdateTesterJob : public ThreadJob | |||||
| { | { | ||||
| friend class FileUpdateTester; | friend class FileUpdateTester; | ||||
| public: | public: | ||||
| char const *GetName() { return "<FileUpdateTesterJob>"; } | |||||
| std::string GetName() const { return "<FileUpdateTesterJob>"; } | |||||
| FileUpdateTesterJob() | FileUpdateTesterJob() | ||||
| : ThreadJob(ThreadJobType::NONE) { } | |||||
| : ThreadJob(ThreadJobType::NONE) | |||||
| { | |||||
| } | |||||
| FileUpdateTesterJob(std::string const &path) | FileUpdateTesterJob(std::string const &path) | ||||
| : ThreadJob(ThreadJobType::WORK_TODO) | |||||
| : ThreadJob(ThreadJobType::WORK_TODO), | |||||
| m_path(path) | |||||
| { | { | ||||
| m_path = path; | |||||
| } | } | ||||
| std::string const &GetPath() { return m_path; } | std::string const &GetPath() { return m_path; } | ||||
| long int GetTime() { return m_time; } | long int GetTime() { return m_time; } | ||||
| bool HasUpdated() { return m_updated; } | bool HasUpdated() { return m_updated; } | ||||
| @@ -156,7 +161,8 @@ void FileUpdateTester::TreatResult(ThreadJob* result) | |||||
| class AsyncImageJob : public ThreadJob | class AsyncImageJob : public ThreadJob | ||||
| { | { | ||||
| public: | public: | ||||
| char const *GetName() { return "<AsyncImageJob>"; } | |||||
| std::string GetName() const { return "<AsyncImageJob>"; } | |||||
| AsyncImageJob() | AsyncImageJob() | ||||
| : ThreadJob(ThreadJobType::NONE) | : ThreadJob(ThreadJobType::NONE) | ||||
| { | { | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine — Unit tests | // Lol Engine — Unit tests | ||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -191,7 +191,7 @@ lolunit_declare_fixture(array_test) | |||||
| lolunit_declare_test(array_insert_tuple) | lolunit_declare_test(array_insert_tuple) | ||||
| { | { | ||||
| array<int, float, String> b; | |||||
| array<int, float, std::string> b; | |||||
| b.insert(0, 5, 6.f, "lol"); | b.insert(0, 5, 6.f, "lol"); | ||||
| lolunit_assert_equal(5, b[0].m1); | lolunit_assert_equal(5, b[0].m1); | ||||
| lolunit_assert_equal(6.f, b[0].m2); | lolunit_assert_equal(6.f, b[0].m2); | ||||
| @@ -28,9 +28,12 @@ lolunit_declare_fixture(thread_test) | |||||
| { | { | ||||
| friend class UnitTestThreadManager; | friend class UnitTestThreadManager; | ||||
| public: | public: | ||||
| char const *GetName() { return "<UnitTestJob>"; } | |||||
| UnitTestJob() : ThreadJob(ThreadJobType::WORK_TODO) | |||||
| std::string GetName() const { return "<UnitTestJob>"; } | |||||
| UnitTestJob() | |||||
| : ThreadJob(ThreadJobType::WORK_TODO) | |||||
| { } | { } | ||||
| bool IsDone() | bool IsDone() | ||||
| { | { | ||||
| return m_done; | return m_done; | ||||
| @@ -41,9 +44,9 @@ lolunit_declare_fixture(thread_test) | |||||
| { | { | ||||
| timer t; | timer t; | ||||
| m_done = false; | m_done = false; | ||||
| msg::info("%s: STARTED WORK\n", GetName()); | |||||
| msg::info("%s: STARTED WORK\n", GetName().c_str()); | |||||
| t.wait(2.f); | t.wait(2.f); | ||||
| msg::info("%s: ENDED WORK\n", GetName()); | |||||
| msg::info("%s: ENDED WORK\n", GetName().c_str()); | |||||
| m_done = true; | m_done = true; | ||||
| return true; | return true; | ||||
| } | } | ||||
| @@ -76,7 +79,7 @@ lolunit_declare_fixture(thread_test) | |||||
| typedef SafeEnum<UnitTestStatusBase> UnitTestStatus; | typedef SafeEnum<UnitTestStatusBase> UnitTestStatus; | ||||
| public: | public: | ||||
| char const *GetName() { return "<UnitTestThreadManager>"; } | |||||
| std::string GetName() const { return "<UnitTestThreadManager>"; } | |||||
| UnitTestThreadManager() : BaseThreadManager(4, 1) | UnitTestThreadManager() : BaseThreadManager(4, 1) | ||||
| { } | { } | ||||
| virtual ~UnitTestThreadManager() | virtual ~UnitTestThreadManager() | ||||
| @@ -84,14 +87,14 @@ lolunit_declare_fixture(thread_test) | |||||
| void AddJob(ThreadJob* job) | void AddJob(ThreadJob* job) | ||||
| { | { | ||||
| msg::info("%s DISPATCHING JOB %s\n", GetName(), job->GetName()); | |||||
| msg::info("%s DISPATCHING JOB %s\n", GetName().c_str(), job->GetName().c_str()); | |||||
| DispatchJob(job); | DispatchJob(job); | ||||
| } | } | ||||
| bool GetWorkResult(array<ThreadJob*>& results) | bool GetWorkResult(array<ThreadJob*>& results) | ||||
| { | { | ||||
| results += m_job_result; | results += m_job_result; | ||||
| m_job_result.empty(); | m_job_result.empty(); | ||||
| msg::info("%s GETWORKRESULT (%i)\n", GetName(), results.count()); | |||||
| msg::info("%s GETWORKRESULT (%i)\n", GetName().c_str(), results.count()); | |||||
| return results.count() > 0; | return results.count() > 0; | ||||
| } | } | ||||
| @@ -102,7 +105,7 @@ lolunit_declare_fixture(thread_test) | |||||
| case UnitTestStatus::NOT_QUEUED: | case UnitTestStatus::NOT_QUEUED: | ||||
| if (!!GetDispatchCount()) | if (!!GetDispatchCount()) | ||||
| { | { | ||||
| msg::info("%s TICKGAME %s\n", GetName(), m_status.tostring().c_str()); | |||||
| msg::info("%s TICKGAME %s\n", GetName().c_str(), m_status.tostring().c_str()); | |||||
| m_status = UnitTestStatus::QUEUED; | m_status = UnitTestStatus::QUEUED; | ||||
| } | } | ||||
| break; | break; | ||||
| @@ -113,14 +116,14 @@ lolunit_declare_fixture(thread_test) | |||||
| if (GetDispatchedCount()) | if (GetDispatchedCount()) | ||||
| #endif | #endif | ||||
| { | { | ||||
| msg::info("%s TICKGAME %s\n", GetName(), m_status.tostring().c_str()); | |||||
| msg::info("%s TICKGAME %s\n", GetName().c_str(), m_status.tostring().c_str()); | |||||
| m_status = UnitTestStatus::RETRIEVED; | m_status = UnitTestStatus::RETRIEVED; | ||||
| } | } | ||||
| break; | break; | ||||
| case UnitTestStatus::RETRIEVED: | case UnitTestStatus::RETRIEVED: | ||||
| if (m_job_result.count() == 4) | if (m_job_result.count() == 4) | ||||
| { | { | ||||
| msg::info("%s TICKGAME %s\n", GetName(), m_status.tostring().c_str()); | |||||
| msg::info("%s TICKGAME %s\n", GetName().c_str(), m_status.tostring().c_str()); | |||||
| m_status = UnitTestStatus::DONE; | m_status = UnitTestStatus::DONE; | ||||
| } | } | ||||
| break; | break; | ||||
| @@ -154,10 +157,10 @@ lolunit_declare_fixture(thread_test) | |||||
| lolunit_declare_test(threads) | lolunit_declare_test(threads) | ||||
| { | { | ||||
| msg::info("%s START\n", m_manager.GetName()); | |||||
| msg::info("%s START\n", m_manager.GetName().c_str()); | |||||
| //Start threads manager | //Start threads manager | ||||
| m_manager.Start(); | m_manager.Start(); | ||||
| msg::info("%s STARTED\n", m_manager.GetName()); | |||||
| msg::info("%s STARTED\n", m_manager.GetName().c_str()); | |||||
| UnitTestJob job[4]; | UnitTestJob job[4]; | ||||
| lolunit_assert_equal(0, m_manager.Test_GetDispatchCount()); | lolunit_assert_equal(0, m_manager.Test_GetDispatchCount()); | ||||
| @@ -190,10 +193,10 @@ lolunit_declare_fixture(thread_test) | |||||
| m_manager.GetWorkResult(results); | m_manager.GetWorkResult(results); | ||||
| lolunit_assert_equal(4, results.count()); | lolunit_assert_equal(4, results.count()); | ||||
| msg::info("%s STOP\n", m_manager.GetName()); | |||||
| msg::info("%s STOP\n", m_manager.GetName().c_str()); | |||||
| //Stop manager | //Stop manager | ||||
| m_manager.Stop(); | m_manager.Stop(); | ||||
| msg::info("%s STOPPED\n", m_manager.GetName()); | |||||
| msg::info("%s STOPPED\n", m_manager.GetName().c_str()); | |||||
| } | } | ||||
| lolunit_declare_test(queue_try_push) | lolunit_declare_test(queue_try_push) | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -30,7 +30,7 @@ class TextData | |||||
| private: | private: | ||||
| int m_font; | int m_font; | ||||
| TextAlign m_align; | TextAlign m_align; | ||||
| String m_text; | |||||
| std::string m_text; | |||||
| vec3 m_pos; | vec3 m_pos; | ||||
| vec2 m_scale; | vec2 m_scale; | ||||
| float m_spacing; | float m_spacing; | ||||
| @@ -40,7 +40,7 @@ private: | |||||
| * Public Text class | * Public Text class | ||||
| */ | */ | ||||
| Text::Text(String const &text, char const *font) | |||||
| Text::Text(std::string const &text, char const *font) | |||||
| : data(new TextData()) | : data(new TextData()) | ||||
| { | { | ||||
| data->m_font = Forge::Register(font); | data->m_font = Forge::Register(font); | ||||
| @@ -53,7 +53,7 @@ Text::Text(String const &text, char const *font) | |||||
| m_drawgroup = DRAWGROUP_HUD; | m_drawgroup = DRAWGROUP_HUD; | ||||
| } | } | ||||
| void Text::SetText(String const &text) | |||||
| void Text::SetText(std::string const &text) | |||||
| { | { | ||||
| data->m_text = text; | data->m_text = text; | ||||
| } | } | ||||
| @@ -98,7 +98,7 @@ void Text::TickDraw(float seconds, Scene &scene) | |||||
| { | { | ||||
| Entity::TickDraw(seconds, scene); | Entity::TickDraw(seconds, scene); | ||||
| if (auto length = data->m_text.count()) | |||||
| if (auto length = data->m_text.length()) | |||||
| { | { | ||||
| Font *font = Forge::GetFont(data->m_font); | Font *font = Forge::GetFont(data->m_font); | ||||
| vec3 delta(0.0f); | vec3 delta(0.0f); | ||||
| @@ -110,7 +110,7 @@ void Text::TickDraw(float seconds, Scene &scene) | |||||
| else if (data->m_align == TextAlign::Center) | else if (data->m_align == TextAlign::Center) | ||||
| delta.x -= 0.5f * text_width * data->m_scale.x; | delta.x -= 0.5f * text_width * data->m_scale.x; | ||||
| font->Print(scene, data->m_pos + delta, data->m_text.C(), | |||||
| font->Print(scene, data->m_pos + delta, data->m_text, | |||||
| data->m_scale, data->m_spacing); | data->m_scale, data->m_spacing); | ||||
| } | } | ||||
| } | } | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -17,6 +19,8 @@ | |||||
| #include "engine/entity.h" | #include "engine/entity.h" | ||||
| #include <string> | |||||
| namespace lol | namespace lol | ||||
| { | { | ||||
| @@ -32,11 +36,11 @@ enum class TextAlign | |||||
| class Text : public Entity | class Text : public Entity | ||||
| { | { | ||||
| public: | public: | ||||
| Text(String const &text, char const *font); | |||||
| Text(std::string const &text, char const *font); | |||||
| virtual ~Text(); | virtual ~Text(); | ||||
| /** Set the text that will be displayed */ | /** Set the text that will be displayed */ | ||||
| void SetText(String const &text); | |||||
| void SetText(std::string const &text); | |||||
| void SetInt(int val); | void SetInt(int val); | ||||
| /** Set the position of the text object, in the 3D world. */ | /** Set the position of the text object, in the 3D world. */ | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -27,7 +29,7 @@ class TextureImageData | |||||
| //T'was protected .... should it be ? | //T'was protected .... should it be ? | ||||
| public: | public: | ||||
| String m_name; | |||||
| std::string m_name; | |||||
| /* Pixels, then texture coordinates */ | /* Pixels, then texture coordinates */ | ||||
| ivec2 m_image_size, m_texture_size; | ivec2 m_image_size, m_texture_size; | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2017 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -40,13 +40,13 @@ TextureImageData* TextureImage::GetNewData() | |||||
| * Public TextureImage class | * Public TextureImage class | ||||
| */ | */ | ||||
| TextureImage::TextureImage(char const *path) | |||||
| TextureImage::TextureImage(std::string const &path) | |||||
| : m_data(GetNewData()) | : m_data(GetNewData()) | ||||
| { | { | ||||
| Init(path); | Init(path); | ||||
| } | } | ||||
| TextureImage::TextureImage(char const *path, image* img) | |||||
| TextureImage::TextureImage(std::string const &path, image* img) | |||||
| : m_data(GetNewData()) | : m_data(GetNewData()) | ||||
| { | { | ||||
| Init(path, img); | Init(path, img); | ||||
| @@ -57,12 +57,12 @@ TextureImage::~TextureImage() | |||||
| delete m_data; | delete m_data; | ||||
| } | } | ||||
| void TextureImage::Init(char const *path) | |||||
| void TextureImage::Init(std::string const &path) | |||||
| { | { | ||||
| Init(path, ResourceLoader::Load(path)); | Init(path, ResourceLoader::Load(path)); | ||||
| } | } | ||||
| void TextureImage::Init(char const *path, ResourceCodecData* loaded_data) | |||||
| void TextureImage::Init(std::string const &path, ResourceCodecData* loaded_data) | |||||
| { | { | ||||
| //Load image if available | //Load image if available | ||||
| auto image_data = dynamic_cast<ResourceImageData*>(loaded_data); | auto image_data = dynamic_cast<ResourceImageData*>(loaded_data); | ||||
| @@ -74,9 +74,9 @@ void TextureImage::Init(char const *path, ResourceCodecData* loaded_data) | |||||
| delete image_data; | delete image_data; | ||||
| } | } | ||||
| void TextureImage::Init(char const *path, image* img) | |||||
| void TextureImage::Init(std::string const &path, image* img) | |||||
| { | { | ||||
| m_data->m_name = String("<textureimage> ") + path; | |||||
| m_data->m_name = "<textureimage> " + path; | |||||
| m_data->m_texture = nullptr; | m_data->m_texture = nullptr; | ||||
| m_data->m_image = img; | m_data->m_image = img; | ||||
| @@ -144,9 +144,9 @@ void TextureImage::TickDraw(float seconds, Scene &scene) | |||||
| } | } | ||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
| char const *TextureImage::GetName() | |||||
| std::string TextureImage::GetName() const | |||||
| { | { | ||||
| return m_data->m_name.C(); | |||||
| return m_data->m_name; | |||||
| } | } | ||||
| void TextureImage::UpdateTexture(image* img) | void TextureImage::UpdateTexture(image* img) | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -38,21 +40,21 @@ protected: | |||||
| virtual TextureImageData* GetNewData(); | virtual TextureImageData* GetNewData(); | ||||
| public: | public: | ||||
| TextureImage(char const *path); | |||||
| TextureImage(char const *path, image* img); | |||||
| TextureImage(std::string const &path); | |||||
| TextureImage(std::string const &path, image* img); | |||||
| virtual ~TextureImage(); | virtual ~TextureImage(); | ||||
| protected: | protected: | ||||
| void Init(char const *path); | |||||
| virtual void Init(char const *path, ResourceCodecData* loaded_data); | |||||
| virtual void Init(char const *path, image* img); | |||||
| void Init(std::string const &path); | |||||
| virtual void Init(std::string const &path, ResourceCodecData* loaded_data); | |||||
| virtual void Init(std::string const &path, image* img); | |||||
| protected: | protected: | ||||
| virtual void TickDraw(float seconds, Scene &scene); | virtual void TickDraw(float seconds, Scene &scene); | ||||
| public: | public: | ||||
| /* Inherited from Entity */ | /* Inherited from Entity */ | ||||
| virtual char const *GetName(); | |||||
| virtual std::string GetName() const; | |||||
| void UpdateTexture(image* img); | void UpdateTexture(image* img); | ||||
| Texture * GetTexture(); | Texture * GetTexture(); | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -36,11 +38,7 @@ static TilerData * const data = &tilerdata; | |||||
| * Public Tiler class | * Public Tiler class | ||||
| */ | */ | ||||
| TileSet *Tiler::Register(String const &path, ivec2 size, ivec2 count) | |||||
| { | |||||
| return Tiler::Register(path.C(), size, count); | |||||
| } | |||||
| TileSet *Tiler::Register(char const *path, ivec2 size, ivec2 count) | |||||
| TileSet *Tiler::Register(std::string const &path, ivec2 size, ivec2 count) | |||||
| { | { | ||||
| int id = data->tilesets.MakeSlot(path); | int id = data->tilesets.MakeSlot(path); | ||||
| TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); | TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); | ||||
| @@ -54,11 +52,7 @@ TileSet *Tiler::Register(char const *path, ivec2 size, ivec2 count) | |||||
| return tileset; | return tileset; | ||||
| } | } | ||||
| TileSet *Tiler::Register(String const &path) | |||||
| { | |||||
| return Tiler::Register(path.C()); | |||||
| } | |||||
| TileSet *Tiler::Register(char const *path) | |||||
| TileSet *Tiler::Register(std::string const &path) | |||||
| { | { | ||||
| int id = data->tilesets.MakeSlot(path); | int id = data->tilesets.MakeSlot(path); | ||||
| TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); | TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); | ||||
| @@ -72,11 +66,7 @@ TileSet *Tiler::Register(char const *path) | |||||
| return tileset; | return tileset; | ||||
| } | } | ||||
| TileSet *Tiler::Register(String const &path, Image* image, ivec2 size, ivec2 count) | |||||
| { | |||||
| return Tiler::Register(path.C(), image, size, count); | |||||
| } | |||||
| TileSet *Tiler::Register(char const *path, Image* image, ivec2 size, ivec2 count) | |||||
| TileSet *Tiler::Register(std::string const &path, Image* image, ivec2 size, ivec2 count) | |||||
| { | { | ||||
| int id = data->tilesets.MakeSlot(path); | int id = data->tilesets.MakeSlot(path); | ||||
| TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); | TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); | ||||
| @@ -90,11 +80,7 @@ TileSet *Tiler::Register(char const *path, Image* image, ivec2 size, ivec2 count | |||||
| return tileset; | return tileset; | ||||
| } | } | ||||
| TileSet *Tiler::Register(String const &path, Image* image) | |||||
| { | |||||
| return Tiler::Register(path.C(), image); | |||||
| } | |||||
| TileSet *Tiler::Register(char const *path, Image* image) | |||||
| TileSet *Tiler::Register(std::string const &path, Image* image) | |||||
| { | { | ||||
| int id = data->tilesets.MakeSlot(path); | int id = data->tilesets.MakeSlot(path); | ||||
| TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); | TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); | ||||
| @@ -1,11 +1,13 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // Lol Engine is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | |||||
| // and/or modify it under the terms of the Do What the Fuck You Want | |||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| // See http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -26,14 +28,10 @@ namespace lol | |||||
| class Tiler | class Tiler | ||||
| { | { | ||||
| public: | public: | ||||
| static TileSet *Register(String const &path, ivec2 size, ivec2 count); | |||||
| static TileSet *Register(char const *path, ivec2 size, ivec2 count); | |||||
| static TileSet *Register(String const &path); | |||||
| static TileSet *Register(char const *path); | |||||
| static TileSet *Register(String const &path, image* img, ivec2 size, ivec2 count); | |||||
| static TileSet *Register(char const *path, image* img, ivec2 size, ivec2 count); | |||||
| static TileSet *Register(String const &path, image* img); | |||||
| static TileSet *Register(char const *path, image* img); | |||||
| static TileSet *Register(std::string const &path, ivec2 size, ivec2 count); | |||||
| static TileSet *Register(std::string const &path); | |||||
| static TileSet *Register(std::string const &path, image* img, ivec2 size, ivec2 count); | |||||
| static TileSet *Register(std::string const &path, image* img); | |||||
| static void Deregister(TileSet *); | static void Deregister(TileSet *); | ||||
| private: | private: | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -45,21 +45,21 @@ protected: | |||||
| * Public TileSet class | * Public TileSet class | ||||
| */ | */ | ||||
| TileSet::TileSet(char const *path) | |||||
| TileSet::TileSet(std::string const &path) | |||||
| : TextureImage(path), | : TextureImage(path), | ||||
| m_tileset_data(new TileSetData()), | m_tileset_data(new TileSetData()), | ||||
| m_palette(nullptr) | m_palette(nullptr) | ||||
| { | { | ||||
| } | } | ||||
| TileSet::TileSet(char const *path, Image* image) | |||||
| TileSet::TileSet(std::string const &path, Image* image) | |||||
| : TextureImage(path, image), | : TextureImage(path, image), | ||||
| m_tileset_data(new TileSetData()), | m_tileset_data(new TileSetData()), | ||||
| m_palette(nullptr) | m_palette(nullptr) | ||||
| { | { | ||||
| } | } | ||||
| TileSet::TileSet(char const *path, Image* image, array<ivec2, ivec2>& tiles) | |||||
| TileSet::TileSet(std::string const &path, Image* image, array<ivec2, ivec2>& tiles) | |||||
| : TextureImage(path, image), | : TextureImage(path, image), | ||||
| m_tileset_data(new TileSetData()), | m_tileset_data(new TileSetData()), | ||||
| m_palette(nullptr) | m_palette(nullptr) | ||||
| @@ -67,7 +67,7 @@ TileSet::TileSet(char const *path, Image* image, array<ivec2, ivec2>& tiles) | |||||
| define_tile(tiles); | define_tile(tiles); | ||||
| } | } | ||||
| TileSet::TileSet(char const *path, ivec2 size, ivec2 count) | |||||
| TileSet::TileSet(std::string const &path, ivec2 size, ivec2 count) | |||||
| : TileSet(path) | : TileSet(path) | ||||
| { | { | ||||
| /* If count is valid, fix size; otherwise, fix count. */ | /* If count is valid, fix size; otherwise, fix count. */ | ||||
| @@ -90,7 +90,7 @@ TileSet::TileSet(char const *path, ivec2 size, ivec2 count) | |||||
| } | } | ||||
| } | } | ||||
| TileSet::TileSet(char const *path, Image* image, ivec2 size, ivec2 count) | |||||
| TileSet::TileSet(std::string const &path, Image* image, ivec2 size, ivec2 count) | |||||
| : TileSet(path, image) | : TileSet(path, image) | ||||
| { | { | ||||
| /* If count is valid, fix size; otherwise, fix count. */ | /* If count is valid, fix size; otherwise, fix count. */ | ||||
| @@ -118,7 +118,7 @@ TileSet::~TileSet() | |||||
| delete m_tileset_data; | delete m_tileset_data; | ||||
| } | } | ||||
| void TileSet::Init(char const *path, ResourceCodecData* loaded_data) | |||||
| void TileSet::Init(std::string const &path, ResourceCodecData* loaded_data) | |||||
| { | { | ||||
| //Load tileset if available | //Load tileset if available | ||||
| auto tileset_data = dynamic_cast<ResourceTilesetData*>(loaded_data); | auto tileset_data = dynamic_cast<ResourceTilesetData*>(loaded_data); | ||||
| @@ -127,22 +127,22 @@ void TileSet::Init(char const *path, ResourceCodecData* loaded_data) | |||||
| define_tile(tileset_data->m_tiles); | define_tile(tileset_data->m_tiles); | ||||
| } | } | ||||
| m_data->m_name = String("<tileset> ") + path; | |||||
| m_data->m_name = "<tileset> " + path; | |||||
| super::Init(path, loaded_data); | super::Init(path, loaded_data); | ||||
| } | } | ||||
| void TileSet::Init(char const *path, Image* image) | |||||
| void TileSet::Init(std::string const &path, Image* image) | |||||
| { | { | ||||
| super::Init(path, image); | super::Init(path, image); | ||||
| m_data->m_name = String("<tileset> ") + path; | |||||
| m_data->m_name = "<tileset> " + path; | |||||
| } | } | ||||
| //Inherited from Entity ------------------------------------------------------- | //Inherited from Entity ------------------------------------------------------- | ||||
| char const *TileSet::GetName() | |||||
| std::string TileSet::GetName() const | |||||
| { | { | ||||
| return m_data->m_name.C(); | |||||
| return m_data->m_name; | |||||
| } | } | ||||
| //New methods ----------------------------------------------------------------- | //New methods ----------------------------------------------------------------- | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2018 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // Lol Engine is free software. It comes without any warranty, to | // Lol Engine is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -41,23 +41,23 @@ class TileSet : public TextureImage | |||||
| typedef TextureImage super; | typedef TextureImage super; | ||||
| public: | public: | ||||
| TileSet(char const *path); | |||||
| TileSet(char const *path, image* img); | |||||
| TileSet(char const *path, image* img, array<ivec2, ivec2>& tiles); | |||||
| TileSet(std::string const &path); | |||||
| TileSet(std::string const &path, image* img); | |||||
| TileSet(std::string const &path, image* img, array<ivec2, ivec2>& tiles); | |||||
| /* Old style: path to PNG file */ | /* Old style: path to PNG file */ | ||||
| TileSet(char const *path, ivec2 size, ivec2 count); | |||||
| TileSet(char const *path, image* img, ivec2 size, ivec2 count); | |||||
| TileSet(std::string const &path, ivec2 size, ivec2 count); | |||||
| TileSet(std::string const &path, image* img, ivec2 size, ivec2 count); | |||||
| virtual ~TileSet(); | virtual ~TileSet(); | ||||
| protected: | protected: | ||||
| virtual void Init(char const *path, ResourceCodecData* loaded_data); | |||||
| virtual void Init(char const *path, image* img); | |||||
| virtual void Init(std::string const &path, ResourceCodecData* loaded_data); | |||||
| virtual void Init(std::string const &path, image* img); | |||||
| public: | public: | ||||
| /* Inherited from Entity */ | /* Inherited from Entity */ | ||||
| virtual char const *GetName(); | |||||
| virtual std::string GetName() const; | |||||
| /* New methods */ | /* New methods */ | ||||
| void clear_all(); | void clear_all(); | ||||