Browse Source

base: clean up and refactor containers.

The containers no longer force the user to use the ptrdiff_t type for
size information. For convenience, size() now always returns an int,
and the size_s() method offers a way to handle arrays with more than
2 billion elements. Internally, we still use ptrdiff_t, though.

Since so much code had to be changed, I took the opportunity to get
rid of capitalised accessors for classes that are lowercase.
undefined
Sam Hocevar 9 years ago
parent
commit
03c17fcae4
100 changed files with 1197 additions and 1290 deletions
  1. +32
    -32
      doc/samples/btphystest.cpp
  2. +41
    -41
      doc/samples/meshviewer/meshviewer.cpp
  3. +7
    -7
      doc/samples/meshviewer/scenesetup.cpp
  4. +6
    -6
      doc/samples/meshviewer/scenesetup.h
  5. +3
    -2
      doc/samples/nacl_phystest.cpp
  6. +7
    -7
      doc/samples/physicobject.h
  7. +2
    -2
      doc/samples/physics/easyphysics.cpp
  8. +3
    -3
      doc/samples/physics/easyphysics.h
  9. +6
    -20
      doc/samples/physics/lolphysics.h
  10. +2
    -2
      doc/tutorial/01_triangle.cpp
  11. +8
    -8
      doc/tutorial/02_cube.cpp
  12. +2
    -2
      doc/tutorial/03_noise.cpp
  13. +8
    -8
      doc/tutorial/04_texture.cpp
  14. +8
    -8
      doc/tutorial/05_easymesh.cpp
  15. +1
    -1
      doc/tutorial/06_sprite.cpp
  16. +17
    -17
      doc/tutorial/07_input.cpp
  17. +2
    -2
      doc/tutorial/08_fbo.cpp
  18. +4
    -4
      doc/tutorial/11_fractal.cpp
  19. +22
    -22
      doc/tutorial/12_voronoi.cpp
  20. +2
    -0
      doc/tutorial/13_shader_builder.cpp
  21. +5
    -5
      src/base/log.cpp
  22. +3
    -3
      src/base/string.cpp
  23. +4
    -4
      src/commandstack.h
  24. +6
    -6
      src/dict.cpp
  25. +91
    -91
      src/easymesh/csgbsp.cpp
  26. +2
    -2
      src/easymesh/easymesh.cpp
  27. +1
    -1
      src/easymesh/easymesh.h
  28. +19
    -19
      src/easymesh/easymeshbuild.cpp
  29. +8
    -8
      src/easymesh/easymeshbuild.h
  30. +39
    -39
      src/easymesh/easymeshcsg.cpp
  31. +10
    -10
      src/easymesh/easymeshcursor.cpp
  32. +48
    -47
      src/easymesh/easymeshinternal.cpp
  33. +1
    -1
      src/easymesh/easymeshlua.cpp
  34. +26
    -26
      src/easymesh/easymeshprimitive.cpp
  35. +45
    -45
      src/easymesh/easymeshrender.cpp
  36. +1
    -1
      src/easymesh/easymeshrender.h
  37. +50
    -53
      src/easymesh/easymeshtransform.cpp
  38. +5
    -2
      src/gpu/renderer.cpp
  39. +31
    -31
      src/gpu/shader.cpp
  40. +2
    -3
      src/image/codec/imlib2-image.cpp
  41. +8
    -8
      src/image/codec/oric-image.cpp
  42. +2
    -3
      src/image/codec/sdl-image.cpp
  43. +32
    -32
      src/image/codec/zed-image.cpp
  44. +3
    -3
      src/image/codec/zed-palette-image.cpp
  45. +7
    -7
      src/image/color/color.cpp
  46. +1
    -1
      src/image/dither/dbs.cpp
  47. +1
    -1
      src/image/dither/ediff.cpp
  48. +1
    -1
      src/image/dither/ordered.cpp
  49. +4
    -4
      src/image/filter/convolution.cpp
  50. +1
    -1
      src/image/filter/median.cpp
  51. +2
    -2
      src/image/image-private.h
  52. +1
    -1
      src/image/image.cpp
  53. +3
    -3
      src/image/kernel.cpp
  54. +2
    -2
      src/image/resample.cpp
  55. +40
    -40
      src/input/controller.cpp
  56. +21
    -21
      src/input/controller.h
  57. +19
    -19
      src/input/input.cpp
  58. +6
    -6
      src/input/input.h
  59. +36
    -36
      src/lol/algorithm/aabb_tree.h
  60. +15
    -15
      src/lol/algorithm/portal.h
  61. +6
    -6
      src/lol/algorithm/sort.h
  62. +5
    -53
      src/lol/base/array.h
  63. +7
    -2
      src/lol/base/map.h
  64. +26
    -64
      src/lol/base/string.h
  65. +2
    -2
      src/lol/gpu/renderer.h
  66. +23
    -34
      src/lol/math/arraynd.h
  67. +1
    -1
      src/lol/math/noise/simplex.h
  68. +13
    -13
      src/lol/math/polynomial.h
  69. +7
    -4
      src/lolimgui.cpp
  70. +7
    -8
      src/lolua/baselua.cpp
  71. +16
    -16
      src/lolua/baselua.h
  72. +10
    -10
      src/math/vector.cpp
  73. +11
    -11
      src/mesh/mesh.cpp
  74. +2
    -0
      src/mesh/mesh.h
  75. +1
    -1
      src/mesh/primitivemesh.cpp
  76. +14
    -13
      src/messageservice.cpp
  77. +5
    -5
      src/platform/d3d9/d3d9input.cpp
  78. +8
    -8
      src/platform/nacl/nacl-instance.cpp
  79. +5
    -4
      src/platform/sdl/sdlapp.cpp
  80. +14
    -14
      src/platform/sdl/sdlinput.cpp
  81. +4
    -4
      src/platform/xbox/xboxinput.cpp
  82. +2
    -3
      src/sample.cpp
  83. +48
    -44
      src/scene.cpp
  84. +21
    -21
      src/scene.h
  85. +17
    -17
      src/sys/file.cpp
  86. +11
    -11
      src/sys/init.cpp
  87. +3
    -3
      src/sys/threadtypes.cpp
  88. +27
    -26
      src/t/base/array.cpp
  89. +8
    -8
      src/t/base/map.cpp
  90. +19
    -19
      src/t/base/string.cpp
  91. +2
    -2
      src/t/image/color.cpp
  92. +2
    -2
      src/t/math/array2d.cpp
  93. +3
    -3
      src/t/math/array3d.cpp
  94. +7
    -7
      src/t/math/arraynd.cpp
  95. +1
    -0
      src/t/math/matrix.cpp
  96. +4
    -4
      src/t/math/polynomial.cpp
  97. +7
    -7
      src/t/math/quat.cpp
  98. +13
    -13
      src/t/sys/thread.cpp
  99. +1
    -1
      src/text.cpp
  100. +29
    -29
      src/ticker.cpp

+ 32
- 32
doc/samples/btphystest.cpp View File

@@ -264,7 +264,7 @@ void BtPhysTest::InitApp()
vec3(2.f , 1.f , 2.f) +
#endif //CAT_MODE
vec3(8.f * (float)x, 8.f * (float)y, 8.f * (float)z));
m_physobj_list.Push(new_physobj, ZERO_TIME);
m_physobj_list.push(new_physobj, ZERO_TIME);
Ticker::Ref(new_physobj);
}
}
@@ -281,9 +281,9 @@ void BtPhysTest::InitApp()
vec3(0.f, 15.f, -20.f) +
vec3(0.f, 0.f, 2.f * (float)i), 1);
RopeElements << new_physobj;
m_physobj_list.Push(new_physobj, ZERO_TIME);
m_physobj_list.push(new_physobj, ZERO_TIME);
Ticker::Ref(new_physobj);
if (RopeElements.Count() > 1)
if (RopeElements.count() > 1)
{
EasyConstraint* new_constraint = new EasyConstraint();

@@ -342,12 +342,12 @@ void BtPhysTest::TickGame(float seconds)
{
m_target_timer = TARGET_TIMER;
if (m_cam_target == -1)
m_cam_target = rand((int)m_physobj_list.Count());
m_cam_target = rand(m_physobj_list.count());
else
m_cam_target = -1;
}

for (int i = 0; i < m_physobj_list.Count(); i++)
for (int i = 0; i < m_physobj_list.count(); i++)
{
PhysicsObject* PhysObj = m_physobj_list[i].m1;
float &Timer = m_physobj_list[i].m2;
@@ -425,7 +425,7 @@ void BtPhysTest::TickGame(float seconds)

#if USE_WALL
{
for (int i = 0; i < m_ground_list.Count(); i++)
for (int i = 0; i < m_ground_list.count(); i++)
{
PhysicsObject* PhysObj = m_ground_list[i];
mat4 GroundMat = PhysObj->GetTransform();
@@ -436,7 +436,7 @@ void BtPhysTest::TickGame(float seconds)

GroundBarycenter /= factor;

for (int i = 0; i < m_ground_list.Count(); i++)
for (int i = 0; i < m_ground_list.count(); i++)
{
PhysicsObject* PhysObj = m_ground_list[i];

@@ -455,7 +455,7 @@ void BtPhysTest::TickGame(float seconds)

#if USE_ROTATION
{
for (int i = 0; i < m_ground_list.Count(); i++)
for (int i = 0; i < m_ground_list.count(); i++)
{
PhysicsObject* PhysObj = m_ground_list[i];

@@ -472,7 +472,7 @@ void BtPhysTest::TickGame(float seconds)

#if USE_PLATFORM
{
for (int i = 0; i < m_platform_list.Count(); i++)
for (int i = 0; i < m_platform_list.count(); i++)
{
PhysicsObject* PhysObj = m_platform_list[i];

@@ -495,7 +495,7 @@ void BtPhysTest::TickGame(float seconds)

#if USE_CHARACTER
{
for (int i = 0; i < m_character_list.Count(); i++)
for (int i = 0; i < m_character_list.count(); i++)
{
PhysicsObject* PhysObj = m_character_list[i];
EasyCharacterController* Character = (EasyCharacterController*)PhysObj->GetCharacter();
@@ -528,7 +528,7 @@ void BtPhysTest::TickGame(float seconds)
PhysObjBarycenter = vec3(.0f);
factor = .0f;

for (int i = 0; i < m_character_list.Count(); i++)
for (int i = 0; i < m_character_list.count(); i++)
{
PhysicsObject* PhysObj = m_character_list[i];
mat4 GroundMat = PhysObj->GetTransform();
@@ -548,7 +548,7 @@ void BtPhysTest::TickGame(float seconds)
#else
{
PhysObjBarycenter = vec3(.0f);
for (int i = 0; i < m_physobj_list.Count(); i++)
for (int i = 0; i < m_physobj_list.count(); i++)
{
PhysicsObject* PhysObj = m_physobj_list[i].m1;
mat4 GroundMat = PhysObj->GetTransform();
@@ -580,7 +580,7 @@ void BtPhysTest::TickDraw(float seconds, Scene &scene)
/* cat datas setup */
m_cat_shader = Shader::Create(LOLFX_RESOURCE_NAME(front_camera_sprite));
#if USE_BODIES
for (int i = 0; i < m_physobj_list.Count(); i++)
for (int i = 0; i < m_physobj_list.count(); i++)
{
PhysicsObject* PhysObj = m_physobj_list[i].m1;
m_cat_sdata = new CatShaderData(((1 << VertexUsage::Position) |
@@ -602,7 +602,7 @@ void BtPhysTest::TickDraw(float seconds, Scene &scene)
else
{
#if CAT_MODE
for (int i = 0; i < m_physobj_list.Count(); i++)
for (int i = 0; i < m_physobj_list.count(); i++)
{
PhysicsObject* PhysObj = m_physobj_list[i].m1;
CatShaderData* ShaderData = (CatShaderData*)PhysObj->GetCustomShaderData();
@@ -632,45 +632,45 @@ BtPhysTest::~BtPhysTest()
Tiler::Deregister(m_cat_texture);
#endif //CAT_MODE

while (m_constraint_list.Count())
while (m_constraint_list.count())
{
EasyConstraint* CurPop = m_constraint_list.Last();
m_constraint_list.Pop();
EasyConstraint* CurPop = m_constraint_list.last();
m_constraint_list.pop();
CurPop->RemoveFromSimulation(m_simulation);
delete CurPop;
}
while (m_ground_list.Count())
while (m_ground_list.count())
{
PhysicsObject* CurPop = m_ground_list.Last();
m_ground_list.Pop();
PhysicsObject* CurPop = m_ground_list.last();
m_ground_list.pop();
CurPop->GetPhysic()->RemoveFromSimulation(m_simulation);
Ticker::Unref(CurPop);
}
while (m_stairs_list.Count())
while (m_stairs_list.count())
{
PhysicsObject* CurPop = m_stairs_list.Last();
m_stairs_list.Pop();
PhysicsObject* CurPop = m_stairs_list.last();
m_stairs_list.pop();
CurPop->GetPhysic()->RemoveFromSimulation(m_simulation);
Ticker::Unref(CurPop);
}
while (m_character_list.Count())
while (m_character_list.count())
{
PhysicsObject* CurPop = m_character_list.Last();
m_character_list.Pop();
PhysicsObject* CurPop = m_character_list.last();
m_character_list.pop();
CurPop->GetCharacter()->RemoveFromSimulation(m_simulation);
Ticker::Unref(CurPop);
}
while (m_platform_list.Count())
while (m_platform_list.count())
{
PhysicsObject* CurPop = m_platform_list.Last();
m_platform_list.Pop();
PhysicsObject* CurPop = m_platform_list.last();
m_platform_list.pop();
CurPop->GetPhysic()->RemoveFromSimulation(m_simulation);
Ticker::Unref(CurPop);
}
while (m_physobj_list.Count())
while (m_physobj_list.count())
{
PhysicsObject* CurPop = m_physobj_list.Last().m1;
m_physobj_list.Pop();
PhysicsObject* CurPop = m_physobj_list.last().m1;
m_physobj_list.pop();
CurPop->GetPhysic()->RemoveFromSimulation(m_simulation);
Ticker::Unref(CurPop);
}


+ 41
- 41
doc/samples/meshviewer/meshviewer.cpp View File

@@ -70,7 +70,7 @@ LOLFX_RESOURCE_DECLARE(shinymvtexture);
class TargetCamera
{
public:
void EmptyTargets() { m_targets.Empty(); }
void EmptyTargets() { m_targets.empty(); }
void AddTarget(vec3 new_target) { m_targets << new_target; }
//This considers the box usage A to B as top-left to bottom-right
void AddTarget(box3 new_target)
@@ -132,7 +132,7 @@ void EasyMeshLoadJob::RetrieveResult(class MeshViewer* app)
{
for (EasyMeshViewerObject* mesh : m_meshes)
app->AddViewerObj(mesh);
m_meshes.Empty();
m_meshes.empty();
}

//MeshViewer ------------------------------------------------------------------
@@ -223,7 +223,7 @@ void MeshViewer::Stop()
for (Entity* entity : m_entities) Ticker::Unref(entity);

//Delete objs
while (m_objs.count()) delete m_objs.Pop();
while (m_objs.count()) delete m_objs.pop();

//Nullify all
m_camera = nullptr;
@@ -307,8 +307,8 @@ void MeshViewer::TickGame(float seconds)
m_menu_mesh_names_str.empty();
for (ViewerObject* obj : m_objs)
m_menu_mesh_names_str << obj->GetName();
for (ptrdiff_t i = 0; i < m_menu_mesh_names_str.count(); ++i)
m_menu_mesh_names_char << m_menu_mesh_names_str[i].C();
for (auto str : m_menu_mesh_names_str)
m_menu_mesh_names_char << str.C();

ImGuiIO& io = ImGui::GetIO();
//CAMERA UI ---------------------------------------------------------------
@@ -432,11 +432,11 @@ void MeshViewer::Prepare()

//Compile ref meshes
m_gizmos << new EasyMesh();
m_gizmos.Last()->Compile("[sc#0f0 ac 3 .5 .4 0 ty .25 [ad 3 .4 sy -1] ty .5 ac 3 1 .075 ty .5 dup[rz 90 ry 90 scv#00f dup[ry 90 scv#f00]]][sc#fff ab .1]");
m_gizmos.last()->Compile("[sc#0f0 ac 3 .5 .4 0 ty .25 [ad 3 .4 sy -1] ty .5 ac 3 1 .075 ty .5 dup[rz 90 ry 90 scv#00f dup[ry 90 scv#f00]]][sc#fff ab .1]");
m_gizmos << new EasyMesh();
m_gizmos.Last()->Compile("[sc#666 acap 1 .5 .5 ty -.5 sc#fff asph 2 1]");
m_gizmos.last()->Compile("[sc#666 acap 1 .5 .5 ty -.5 sc#fff asph 2 1]");
m_gizmos << new EasyMesh();
m_gizmos.Last()->Compile("[sc#fff ac 3 .5 .4 0 ty .25 [ad 3 .4 sy -1] ty .5 ac 3 1 .1 ty .5 [ad 3 .1 sy -1] ty 1 rz 90 ry 90]");
m_gizmos.last()->Compile("[sc#fff ac 3 .5 .4 0 ty .25 [ad 3 .4 sy -1] ty .5 ac 3 1 .1 ty .5 [ad 3 .1 sy -1] ty 1 rz 90 ry 90]");

// Mesh Setup
m_render_max = vec2(-.9f, 4.1f);
@@ -539,19 +539,19 @@ void MeshViewer::Prepare()
m_ssetup = new SceneSetup();
#if NO_SC_SETUP
m_ssetup->m_lights << new Light();
m_ssetup->m_lights.Last()->SetPosition(vec4(4.f, -1.f, -4.f, 0.f));
m_ssetup->m_lights.Last()->SetColor(vec4(.0f, .2f, .5f, 1.f));
Ticker::Ref(m_ssetup->m_lights.Last());
m_ssetup->m_lights.last()->SetPosition(vec4(4.f, -1.f, -4.f, 0.f));
m_ssetup->m_lights.last()->SetColor(vec4(.0f, .2f, .5f, 1.f));
Ticker::Ref(m_ssetup->m_lights.last());
m_ssetup->m_lights << new Light();
m_ssetup->m_lights.Last()->SetPosition(vec4(8.f, 2.f, 6.f, 0.f));
m_ssetup->m_lights.Last()->SetColor(vec4(1.f));
Ticker::Ref(m_ssetup->m_lights.Last());
m_ssetup->m_lights.last()->SetPosition(vec4(8.f, 2.f, 6.f, 0.f));
m_ssetup->m_lights.last()->SetColor(vec4(1.f));
Ticker::Ref(m_ssetup->m_lights.last());
EasyMesh* em = new EasyMesh();
if (em->Compile("sc#fff ab 1"))
{
if (m_mesh_id == m_meshes.Count() - 1)
if (m_mesh_id == m_meshes.count() - 1)
m_mesh_id++;
m_meshes.Push(em, nullptr);
m_meshes.push(em, nullptr);
}
#else
//TOUKY CHANGE THAT
@@ -562,7 +562,7 @@ void MeshViewer::Prepare()
*/
m_ssetup->Startup();
#endif //NO_SC_SETUP
for (int i = 0; i < m_ssetup->m_lights.Count(); ++i)
for (int i = 0; i < m_ssetup->m_lights.count(); ++i)
{
m_light_datas << LightData(m_ssetup->m_lights[i]->GetPosition().xyz, m_ssetup->m_lights[i]->GetColor());
m_ssetup->m_lights[i]->SetPosition(vec3::zero);
@@ -609,14 +609,14 @@ void MeshViewer::Update(float seconds)

//Mesh Change
#if HAS_INPUT
m_mesh_id = clamp(m_mesh_id + ((int)KeyPressed(KEY_MESH_PREV) - (int)KeyPressed(KEY_MESH_NEXT)), 0, (int)m_meshes.Count() - 1);
m_mesh_id = clamp(m_mesh_id + ((int)KeyPressed(KEY_MESH_PREV) - (int)KeyPressed(KEY_MESH_NEXT)), 0, m_meshes.count() - 1);
#endif //HAS_INPUT
m_mesh_id1 = damp(m_mesh_id1, (float)m_mesh_id, .2f, seconds);

#if ALL_FEATURES

//Update light position & damping
for (int i = 0; i < m_ssetup->m_lights.Count(); ++i)
for (int i = 0; i < m_ssetup->m_lights.count(); ++i)
{
vec3 pos = (m_mat * inverse(m_mat_prev) * vec4(m_ssetup->m_lights[i]->GetPosition(), 1.f)).xyz;
vec3 tgt = (m_mat * vec4(m_light_datas[i].m_pos, 1.f)).xyz;
@@ -724,11 +724,11 @@ void MeshViewer::Update(float seconds)

//Target List Setup
TargetCamera tc;
if (m_meshes.Count() && m_mesh_id >= 0)
if (m_meshes.count() && m_mesh_id >= 0)
for (int i = 0; i < m_meshes[m_mesh_id].m1->GetVertexCount(); i++)
tc.AddTarget((m_mat * mat4::translate(m_meshes[m_mesh_id].m1->GetVertexLocation(i)))[3].xyz);
tc.AddTarget(box3(vec3(0.f), vec3(1.f)));
for (int k = 0; k < m_ssetup->m_lights.Count() && m_ssetup->m_show_lights; ++k)
for (int k = 0; k < m_ssetup->m_lights.count() && m_ssetup->m_show_lights; ++k)
{
vec3 light_pos = m_ssetup->m_lights[k]->GetPosition();
mat4 world_cam = m_camera->GetView();
@@ -748,7 +748,7 @@ void MeshViewer::Update(float seconds)
mat4 cam_screen = m_camera->GetProjection();

//target on-screen computation
for (int i = 0; i < tc.m_targets.Count(); i++)
for (int i = 0; i < tc.m_targets.count(); i++)
{
vec3 obj_loc = tc.m_targets[i];
{
@@ -810,11 +810,11 @@ void MeshViewer::Update(float seconds)
while (o-- > 0)
{
SceneSetup* new_ssetup = new SceneSetup();
if (false) //new_ssetup->Compile(mesh.C()) && new_ssetup->m_lights.Count())
if (false) //new_ssetup->Compile(mesh.C()) && new_ssetup->m_lights.count())
{
//Store current light datas, in World
array<LightData> light_datas;
for (int i = 0; i < m_ssetup->m_lights.Count(); ++i)
for (int i = 0; i < m_ssetup->m_lights.count(); ++i)
light_datas << LightData(m_ssetup->m_lights[i]->GetPosition(), m_ssetup->m_lights[i]->GetColor());

if (m_ssetup)
@@ -824,18 +824,18 @@ void MeshViewer::Update(float seconds)

//Restore all light datas so blend can occur
mat4 light_mat = m_mat * inverse(mat4(quat::fromeuler_xyz(vec3::zero)));
for (int i = 0; i < m_ssetup->m_lights.Count(); ++i)
for (int i = 0; i < m_ssetup->m_lights.count(); ++i)
{
//Store local dst in current m_ld
LightData ltmp = LightData(m_ssetup->m_lights[i]->GetPosition(), m_ssetup->m_lights[i]->GetColor());
if (i < m_light_datas.Count())
if (i < m_light_datas.count())
m_light_datas[i] = ltmp;
else
m_light_datas << ltmp;

vec3 loc = vec3::zero;
vec4 col = vec4::zero;
if (i < light_datas.Count())
if (i < light_datas.count())
{
loc = light_datas[i].m_pos;
col = light_datas[i].m_col;
@@ -858,7 +858,7 @@ void MeshViewer::Update(float seconds)
int o = 1;
while (o-- > 0)
{
for (int i = 0; m_ssetup && i < m_ssetup->m_custom_cmd.Count(); ++i)
for (int i = 0; m_ssetup && i < m_ssetup->m_custom_cmd.count(); ++i)
{
if (m_ssetup->m_custom_cmd[i].m1 == "setmesh")
{
@@ -867,16 +867,16 @@ void MeshViewer::Update(float seconds)
if (em->Compile(m_ssetup->m_custom_cmd[i].m2.C(), false))
{
em->BD()->Cmdi() = 0;
if (m_mesh_id == m_meshes.Count() - 1)
if (m_mesh_id == m_meshes.count() - 1)
m_mesh_id++;
m_meshes.Push(em, nullptr);
m_meshes.push(em, nullptr);
}
else
delete em;
}
}
}
m_ssetup->m_custom_cmd.Empty();
m_ssetup->m_custom_cmd.empty();
#endif //ALL_FEATURES

#if HAS_WEB
@@ -908,8 +908,8 @@ void MeshViewer::Update(float seconds)
String cmd = f.ReadString();
f.Close();

if (cmd.Count()
&& (!m_cmdlist.Count() || cmd != m_cmdlist.Last()))
if (cmd.count()
&& (!m_cmdlist.count() || cmd != m_cmdlist.last()))
{
m_cmdlist << cmd;
MessageService::Send(MessageBucket::AppIn, cmd);
@@ -947,7 +947,7 @@ void MeshViewer::Draw(float seconds, Scene &scene)

Renderer::Get()->SetClearColor(m_ssetup->m_clear_color);

for (int i = 0; i < m_gizmos.Count(); ++i)
for (int i = 0; i < m_gizmos.count(); ++i)
{
if (m_gizmos[i]->GetMeshState() == MeshRender::NeedConvert)
m_gizmos[i]->MeshConvert();
@@ -960,7 +960,7 @@ void MeshViewer::Draw(float seconds, Scene &scene)
if (m_build_time < .0f)
{
m_build_time = m_build_timer;
for (int i = 0; i < m_meshes.Count(); ++i)
for (int i = 0; i < m_meshes.count(); ++i)
{
if (m_meshes[i].m1 && m_meshes[i].m1->BD()->Cmdi() < m_meshes[i].m1->BD()->CmdStack().GetCmdNb())
{
@@ -1024,7 +1024,7 @@ void MeshViewer::Draw(float seconds, Scene &scene)
//Align right meshes
mat4 mat_align = mat4::translate(x - x * RATIO_HW);
mat4 mat_gizmo = mat_obj_offset * mat_align * save_proj;
for (int i = 0; i < m_meshes.Count(); i++)
for (int i = 0; i < m_meshes.count(); i++)
{
{
if (m_meshes[i].m1->GetMeshState() == MeshRender::NeedConvert)
@@ -1038,7 +1038,7 @@ void MeshViewer::Draw(float seconds, Scene &scene)
#endif //WITH_TEXTURE
}
#if ALL_FEATURES
float j = -(float)(m_meshes.Count() - (i + 1)) + (-m_mesh_id1 + (float)(m_meshes.Count() - 1));
float j = -(float)(m_meshes.count() - (i + 1)) + (-m_mesh_id1 + (float)(m_meshes.count() - 1));

if (m_mesh_id1 - m_render_max[0] > (float)i && m_mesh_id1 - m_render_max[1] < (float)i &&
m_meshes[i].m1->GetMeshState() > MeshRender::NeedConvert)
@@ -1074,7 +1074,7 @@ void MeshViewer::Draw(float seconds, Scene &scene)

if (m_ssetup->m_show_lights)
{
for (int k = 0; k < m_ssetup->m_lights.Count(); ++k)
for (int k = 0; k < m_ssetup->m_lights.count(); ++k)
{
Light* ltmp = m_ssetup->m_lights[k];
mat4 world = mat4::translate(ltmp->GetPosition());
@@ -1096,9 +1096,9 @@ void MeshViewer::Draw(float seconds, Scene &scene)
#endif //NORMAL_USAGE

#if 0 //Debug normal draw
for (int i = m_meshes.Count() - 1; 0 <= i && i < m_meshes.Count(); i++)
for (int i = m_meshes.count() - 1; 0 <= i && i < m_meshes.count(); i++)
{
for (int j = 0; j < m_meshes[i].m1->m_indices.Count(); j += 3)
for (int j = 0; j < m_meshes[i].m1->m_indices.count(); j += 3)
{
VertexData v[3] = { m_meshes[i].m1->m_vert[m_meshes[i].m1->m_indices[j ]],
m_meshes[i].m1->m_vert[m_meshes[i].m1->m_indices[j+1]],
@@ -1108,7 +1108,7 @@ void MeshViewer::Draw(float seconds, Scene &scene)
Debug::DrawLine((m_mat * mat4::translate(v[k].m_coord))[3].xyz,
(m_mat * mat4::translate(v[(k+1)%3].m_coord))[3].xyz, vec4(vec3((v[k].m_coord.z + 1.f)*.5f),1.f));
}
for (int j = 0; j < m_meshes[i].m1->m_vert.Count(); j++)
for (int j = 0; j < m_meshes[i].m1->m_vert.count(); j++)
{
VertexData &v = m_meshes[i].m1->m_vert[m_meshes[i].m1->m_indices[j]];
Debug::DrawLine((m_mat * mat4::translate(v.m_coord))[3].xyz,


+ 7
- 7
doc/samples/meshviewer/scenesetup.cpp View File

@@ -38,7 +38,7 @@ SceneSetup::~SceneSetup()
//-----------------------------------------------------------------------------
bool SceneSetup::Startup()
{
for (int i = 0; i < m_lights.Count(); i++)
for (int i = 0; i < m_lights.count(); i++)
Ticker::Ref(m_lights[i]);
return true;
}
@@ -46,12 +46,12 @@ bool SceneSetup::Startup()
//-----------------------------------------------------------------------------
bool SceneSetup::Shutdown(bool destroy)
{
for (int i = 0; i < m_lights.Count(); i++)
for (int i = 0; i < m_lights.count(); i++)
if (m_lights[i]->IsTicked())
Ticker::Unref(m_lights[i]);

if (destroy)
m_lights.Empty();
m_lights.empty();
return true;
}

@@ -60,7 +60,7 @@ void SceneSetup::AddLight(LightType type)
{
m_last_cmd = SceneSetup::Command::AddLight;
m_lights << new Light();
m_lights.Last()->SetType(type);
m_lights.last()->SetType(type);
}

//-----------------------------------------------------------------------------
@@ -75,7 +75,7 @@ void SceneSetup::SetPosition(vec3 const& v)
switch (m_last_cmd.ToScalar())
{
case SceneSetup::Command::AddLight:
m_lights.Last()->SetPosition(v);
m_lights.last()->SetPosition(v);
break;
}
}
@@ -87,7 +87,7 @@ void SceneSetup::SetLookAt(vec3 const& v)
{
case SceneSetup::Command::AddLight:
//TODO: Do better
m_lights.Last()->SetPosition(v - m_lights.Last()->GetPosition());
m_lights.last()->SetPosition(v - m_lights.last()->GetPosition());
break;
}
}
@@ -98,7 +98,7 @@ void SceneSetup::SetColor(vec4 const& c)
switch (m_last_cmd.ToScalar())
{
case SceneSetup::Command::AddLight:
m_lights.Last()->SetColor(c);
m_lights.last()->SetColor(c);
break;
case SceneSetup::Command::SetupScene:
m_clear_color = c;


+ 6
- 6
doc/samples/meshviewer/scenesetup.h View File

@@ -185,24 +185,24 @@ custom { return token::T_CUSTOMCMD; }
light_command:
T_ADDLIGHT { uc.m_sstp.m_lights << new Light(); uc.m_last_cmd = "ADDLIGHT"; }
| T_ADDLIGHT fv { uc.m_sstp.m_lights << new Light(); uc.m_last_cmd = "ADDLIGHT";
uc.m_sstp.m_lights.Last()->SetType(LightType($2)); }
uc.m_sstp.m_lights.last()->SetType(LightType($2)); }
| T_ADDLIGHT svv { uc.m_sstp.m_lights << new Light(); uc.m_last_cmd = "ADDLIGHT";
uc.m_sstp.m_lights.Last()->SetType(FindValue<LightType>($2)); }
uc.m_sstp.m_lights.last()->SetType(FindValue<LightType>($2)); }
;

setup_command:
T_OBJPOSITION v3 { if (uc.m_last_cmd == "ADDLIGHT")
uc.m_sstp.m_lights.Last()->SetPosition(vec3($2[0], $2[1], $2[2])); }
uc.m_sstp.m_lights.last()->SetPosition(vec3($2[0], $2[1], $2[2])); }
| T_OBJLOOKAT v3 { if (uc.m_last_cmd == "ADDLIGHT")
{
} }
| T_OBJCOLOR v4{ if (uc.m_last_cmd == "ADDLIGHT")
uc.m_sstp.m_lights.Last()->SetColor(vec4($2[0], $2[1], $2[2], $2[3])); }
uc.m_sstp.m_lights.last()->SetColor(vec4($2[0], $2[1], $2[2], $2[3])); }
| T_OBJCOLOR COLOR{ uint32_t x = $2;
ivec4 v(x >> 24, (x >> 16) & 0xff, (x >> 8) & 0xff, x & 0xff);
vec4 vv = vec4(v) * (1.f / 255.f);
if (uc.m_last_cmd == "ADDLIGHT")
uc.m_sstp.m_lights.Last()->SetColor(vv); }
uc.m_sstp.m_lights.last()->SetColor(vv); }
;

scene_command:
@@ -215,7 +215,7 @@ uc.m_sstp.m_clear_color = vec4(v) * (1.f / 255.f); }
;

custom_command:
T_CUSTOMCMD svv sv{ uc.m_sstp.m_custom_cmd.Push($2, $3); }
T_CUSTOMCMD svv sv{ uc.m_sstp.m_custom_cmd.push($2, $3); }
;

*/


+ 3
- 2
doc/samples/nacl_phystest.cpp View File

@@ -42,7 +42,7 @@ Nacl_PhysTest::Nacl_PhysTest(bool editor)
vec3(0.f, 0.f, 0.f),
vec3(0, 1, 0));
m_camera->SetProjection(45.f, .1f, 1000.f, (float)Video::GetSize().x, (float)Video::GetSize().y / (float)Video::GetSize().x);
g_scene->PushCamera(m_camera);
Scene::GetScene().PushCamera(m_camera);

m_ready = false;

@@ -96,7 +96,8 @@ void Nacl_PhysTest::TickDraw(float seconds, Scene &scene)

Nacl_PhysTest::~Nacl_PhysTest()
{
g_scene->PopCamera(m_camera);
Scene::GetScene().PopCamera(m_camera);

Ticker::Unref(m_light1);
Ticker::Unref(m_light2);



+ 7
- 7
doc/samples/physicobject.h View File

@@ -144,7 +144,7 @@ public:
MeshRand << "[sc#ada afcb1.7 1.7 1.7 0.4][sc#000 tsw afcb1.9 1.9 1.9 0.4 sx-1 sy-1 sz-1]";
MeshRand << "[sc#aad afcb1.7 1.7 1.7 0.4][sc#000 tsw afcb1.9 1.9 1.9 0.4 sx-1 sy-1 sz-1]";

MeshLimit << MeshRand.Count();
MeshLimit << MeshRand.count();
MeshType << 0;
#endif //USE_BOX

@@ -173,7 +173,7 @@ public:
MeshRand << "[sc#aad asph1 2]";
#endif

MeshLimit << (int)MeshRand.Count();
MeshLimit << MeshRand.count();
MeshType << 1;
#endif //USE_SPHERE

@@ -185,7 +185,7 @@ public:
MeshRand << "[sc#ada scb#ada ad8 2 0 rx180 ty-1 ac8 2 2 0 0 0]";
MeshRand << "[sc#aad scb#aad ad8 2 0 rx180 ty-1 ac8 2 2 0 0 0]";

MeshLimit << MeshRand.Count();
MeshLimit << MeshRand.count();
MeshType << 2;
#endif //USE_CONE

@@ -197,7 +197,7 @@ public:
MeshRand << "[sc#ada scb#ada ad8 2 0 rx180 ty-1 my ac8 2 2 2 0 0]";
MeshRand << "[sc#aad scb#aad ad8 2 0 rx180 ty-1 my ac8 2 2 2 0 0]";

MeshLimit << MeshRand.Count();
MeshLimit << MeshRand.count();
MeshType << 3;
#endif //USE_CYLINDER

@@ -209,13 +209,13 @@ public:
MeshRand << "[sc#ada scb#ada acap1 2 1]";
MeshRand << "[sc#aad scb#aad acap1 2 1]";

MeshLimit << MeshRand.Count();
MeshLimit << MeshRand.count();
MeshType << 4;
#endif //USE_CAPSULE

int RandLimit = RandValue;
if (MeshLimit.Count() <= RandValue || RandValue < 0)
RandLimit = rand((int)MeshLimit.Count() - 1);
if (MeshLimit.count() <= RandValue || RandValue < 0)
RandLimit = rand((int)MeshLimit.count() - 1);
RandValue = rand(MeshLimit[RandLimit], MeshLimit[RandLimit + 1]);

m_physics = new EasyPhysic(this);


+ 2
- 2
doc/samples/physics/easyphysics.cpp View File

@@ -145,12 +145,12 @@ void EasyPhysic::SetTransform(const lol::vec3& base_location, const lol::quat& b
m_motion_state = new btDefaultMotionState(btTransform(LOL2BT_QUAT(base_rotation), LOL2BT_VEC3(LOL2BT_UNIT * base_location)));
}

for (int i = 0; i < m_based_physic_list.Count(); i++)
for (int i = 0; i < m_based_physic_list.count(); i++)
{
if (m_based_physic_list[i])
m_based_physic_list[i]->BaseTransformChanged(PreviousMatrix, m_local_to_world);
else
m_based_physic_list.Remove(i--);
m_based_physic_list.remove(i--);
}
}



+ 3
- 3
doc/samples/physics/easyphysics.h View File

@@ -114,7 +114,7 @@ public:
if (NewBase)
{
bool bAlreadyExists = false;
for (int i = 0; i < NewBase->m_based_physic_list.Count(); ++i)
for (int i = 0; i < NewBase->m_based_physic_list.count(); ++i)
if (NewBase->m_based_physic_list[i] == this)
bAlreadyExists = true;
if (!bAlreadyExists)
@@ -125,9 +125,9 @@ public:
}
else if (m_base_physic)
{
for (int i = 0; i < m_base_physic->m_based_physic_list.Count(); ++i)
for (int i = 0; i < m_base_physic->m_based_physic_list.count(); ++i)
if (m_base_physic->m_based_physic_list[i] == this)
m_base_physic->m_based_physic_list.Remove(i--);
m_base_physic->m_based_physic_list.remove(i--);
m_base_physic = NULL;
}
}


+ 6
- 20
doc/samples/physics/lolphysics.h View File

@@ -42,10 +42,10 @@ struct RayCastResult
}
void Reset()
{
m_collider_list.Empty();
m_hit_normal_list.Empty();
m_hit_point_list.Empty();
m_hit_fraction_list.Empty();
m_collider_list.empty();
m_hit_normal_list.empty();
m_hit_point_list.empty();
m_hit_fraction_list.empty();
}

array<EasyPhysic*> m_collider_list;
@@ -376,14 +376,7 @@ private:
else
{
NewEP->m_owner_simulation = NULL;
for (int i = 0; i < SearchList->Count(); ++i)
{
if ((*SearchList)[i] == NewEP)
{
SearchList->Remove(i--);
break;
}
}
SearchList->remove_item(NewEP);
}
}
void ObjectRegistration(bool AddObject, EasyConstraint* NewEC)
@@ -399,14 +392,7 @@ private:
else
{
NewEC->m_owner_simulation = NULL;
for (int i = 0; i < SearchList->Count(); ++i)
{
if ((*SearchList)[i] == NewEC)
{
SearchList->Remove(i--);
break;
}
}
SearchList->remove_item(NewEC);
}
}



+ 2
- 2
doc/tutorial/01_triangle.cpp View File

@@ -41,9 +41,9 @@ public:

m_vdecl = new VertexDeclaration(VertexStream<vec2>(VertexUsage::Position));

m_vbo = new VertexBuffer(m_vertices.Bytes());
m_vbo = new VertexBuffer(m_vertices.bytes());
void *vertices = m_vbo->Lock(0, 0);
memcpy(vertices, &m_vertices[0], m_vertices.Bytes());
memcpy(vertices, &m_vertices[0], m_vertices.bytes());
m_vbo->Unlock();

m_ready = true;


+ 8
- 8
doc/tutorial/02_cube.cpp View File

@@ -74,19 +74,19 @@ public:
new VertexDeclaration(VertexStream<vec3,vec3>(VertexUsage::Position,
VertexUsage::Color));

m_vbo = new VertexBuffer(m_mesh.Bytes());
m_vbo = new VertexBuffer(m_mesh.bytes());
void *mesh = m_vbo->Lock(0, 0);
memcpy(mesh, &m_mesh[0], m_mesh.Bytes());
memcpy(mesh, &m_mesh[0], m_mesh.bytes());
m_vbo->Unlock();

m_lines_ibo = new IndexBuffer(m_lines_indices.Bytes());
m_lines_ibo = new IndexBuffer(m_lines_indices.bytes());
void *indices = m_lines_ibo->Lock(0, 0);
memcpy(indices, &m_lines_indices[0], m_lines_indices.Bytes());
memcpy(indices, &m_lines_indices[0], m_lines_indices.bytes());
m_lines_ibo->Unlock();

m_faces_ibo = new IndexBuffer(m_faces_indices.Bytes());
m_faces_ibo = new IndexBuffer(m_faces_indices.bytes());
indices = m_faces_ibo->Lock(0, 0);
memcpy(indices, &m_faces_indices[0], m_faces_indices.Bytes());
memcpy(indices, &m_faces_indices[0], m_faces_indices.bytes());
m_faces_ibo->Unlock();

/* FIXME: this object never cleans up */
@@ -102,13 +102,13 @@ public:
m_shader->SetUniform(m_mvp, m_matrix);
m_lines_ibo->Bind();
m_vdecl->DrawIndexedElements(MeshPrimitive::Lines, 0, 0,
(int)m_mesh.Count(), 0, (int)m_lines_indices.Count());
m_mesh.count(), 0, m_lines_indices.count());
m_lines_ibo->Unbind();

m_shader->SetUniform(m_mvp, m_matrix * mat4::scale(0.5f));
m_faces_ibo->Bind();
m_vdecl->DrawIndexedElements(MeshPrimitive::Triangles, 0, 0,
(int)m_mesh.Count(), 0, (int)m_faces_indices.Count());
m_mesh.count(), 0, m_faces_indices.count());
m_faces_ibo->Unbind();

m_vdecl->Unbind();


+ 2
- 2
doc/tutorial/03_noise.cpp View File

@@ -48,9 +48,9 @@ public:

m_vdecl = new VertexDeclaration(VertexStream<vec2>(VertexUsage::Position));

m_vbo = new VertexBuffer(m_vertices.Bytes());
m_vbo = new VertexBuffer(m_vertices.bytes());
void *vertices = m_vbo->Lock(0, 0);
memcpy(vertices, &m_vertices[0], m_vertices.Bytes());
memcpy(vertices, &m_vertices[0], m_vertices.bytes());
m_vbo->Unlock();

m_ready = true;


+ 8
- 8
doc/tutorial/04_texture.cpp View File

@@ -34,7 +34,7 @@ public:
m_frames(0),
m_ready(false)
{
m_heightmap.Resize(TEXTURE_WIDTH * 1);
m_heightmap.resize(TEXTURE_WIDTH * 1);
}

virtual void TickGame(float seconds)
@@ -43,16 +43,16 @@ public:

/* Generate a new heightmap at the beginning */
if (m_frames == 0)
memset(m_heightmap.Data(), 255, m_heightmap.Bytes());
memset(m_heightmap.data(), 255, m_heightmap.bytes());

/* Scroll left */
for (int i = 0; i < m_heightmap.Count() - 1; i++)
for (int i = 0; i < m_heightmap.count() - 1; i++)
m_heightmap[i] = m_heightmap[i + 1];

int height = m_heightmap.Last();
int height = m_heightmap.last();
height = (int)(height + 127 + 40 * lol::sin(m_frames * 0.03) + rand() % 97 - 38) / 2;
height = std::max(15, std::min(height, 240));
m_heightmap.Last() = height;
m_heightmap.last() = height;

/* Update frame counter */
++m_frames;
@@ -73,9 +73,9 @@ public:

m_vdecl = new VertexDeclaration(VertexStream<vec2>(VertexUsage::Position));

m_vbo = new VertexBuffer(m_vertices.Bytes());
m_vbo = new VertexBuffer(m_vertices.bytes());
void *vertices = m_vbo->Lock(0, 0);
memcpy(vertices, &m_vertices[0], m_vertices.Bytes());
memcpy(vertices, &m_vertices[0], m_vertices.bytes());
m_vbo->Unlock();

m_ready = true;
@@ -84,7 +84,7 @@ public:
}

/* Send new heightmap to GPU */
m_texture->SetData(m_heightmap.Data());
m_texture->SetData(m_heightmap.data());

m_shader->Bind();
m_shader->SetUniform(m_texture_uni, m_texture->GetTextureUniform(), 0);


+ 8
- 8
doc/tutorial/05_easymesh.cpp View File

@@ -36,11 +36,11 @@ public:
EasyMeshLuaObject* gears3 = EzMhLoader.GetPtr<EasyMeshLuaObject>("g3");
EasyMeshLuaObject* gears4 = EzMhLoader.GetPtr<EasyMeshLuaObject>("g4");

m_gears.Push(gears0->GetMesh(), mat4(1.0f), 0.0f);
m_gears.Push(gears1->GetMesh(), mat4(1.0f), 0.0f);
m_gears.Push(gears2->GetMesh(), mat4(1.0f), 180.0f / 18);
m_gears.Push(gears3->GetMesh(), mat4(1.0f), 180.0f / 18);
m_gears.Push(gears4->GetMesh(), mat4(1.0f), 180.0f / 18);
m_gears.push(gears0->GetMesh(), mat4(1.0f), 0.0f);
m_gears.push(gears1->GetMesh(), mat4(1.0f), 0.0f);
m_gears.push(gears2->GetMesh(), mat4(1.0f), 180.0f / 18);
m_gears.push(gears3->GetMesh(), mat4(1.0f), 180.0f / 18);
m_gears.push(gears4->GetMesh(), mat4(1.0f), 180.0f / 18);

/*
m_gears[0].m1.Compile("[sc#00f ab 8 1 8 ty -.25]"
@@ -129,7 +129,7 @@ public:
Renderer::Get()->SetClearColor(vec4(0.0f, 0.0f, 0.0f, 1.0f));

/* Upload vertex data to GPU */
for (int i = 0; i < m_gears.Count(); i++)
for (int i = 0; i < m_gears.count(); i++)
m_gears[i].m1.MeshConvert();

#if USE_CUSTOM_SHADER
@@ -137,14 +137,14 @@ public:
Shader *custom_shader = Shader::Create(LOLFX_RESOURCE_NAME(shiny));
// any other shader stuf here (Get uniform, mostly, and set texture)

for (int i = 0; i < m_gears.Count(); i++)
for (int i = 0; i < m_gears.count(); i++)
m_gears[i].m1.SetMaterial(custom_shader);
#endif

m_ready = true;
}

for (int i = 0; i < m_gears.Count(); i++)
for (int i = 0; i < m_gears.count(); i++)
{
m_gears[i].m1.Render(scene, m_mat * m_gears[i].m2);
}


+ 1
- 1
doc/tutorial/06_sprite.cpp View File

@@ -35,7 +35,7 @@ public:

for (int i = 0; i < SPRITE_COUNT; ++i)
{
m_sprites.Push(vec3((float)rand(-96, 640), (float)rand(-96, 480), 0.f),
m_sprites.push(vec3((float)rand(-96, 640), (float)rand(-96, 480), 0.f),
rand(0.f, 1.f));
}



+ 17
- 17
doc/tutorial/07_input.cpp View File

@@ -67,15 +67,15 @@ public:
m_autorot = true;

/* Front vertices/colors */
m_mesh.Push(vec3(-1.0, -1.0, 1.0), vec3(1.0, 0.0, 1.0));
m_mesh.Push(vec3( 1.0, -1.0, 1.0), vec3(0.0, 1.0, 0.0));
m_mesh.Push(vec3( 1.0, 1.0, 1.0), vec3(1.0, 0.5, 0.0));
m_mesh.Push(vec3(-1.0, 1.0, 1.0), vec3(1.0, 1.0, 0.0));
m_mesh.push(vec3(-1.0, -1.0, 1.0), vec3(1.0, 0.0, 1.0));
m_mesh.push(vec3( 1.0, -1.0, 1.0), vec3(0.0, 1.0, 0.0));
m_mesh.push(vec3( 1.0, 1.0, 1.0), vec3(1.0, 0.5, 0.0));
m_mesh.push(vec3(-1.0, 1.0, 1.0), vec3(1.0, 1.0, 0.0));
/* Back */
m_mesh.Push(vec3(-1.0, -1.0, -1.0), vec3(1.0, 0.0, 0.0));
m_mesh.Push(vec3( 1.0, -1.0, -1.0), vec3(0.0, 0.5, 0.0));
m_mesh.Push(vec3( 1.0, 1.0, -1.0), vec3(0.0, 0.5, 1.0));
m_mesh.Push(vec3(-1.0, 1.0, -1.0), vec3(0.0, 0.0, 1.0));
m_mesh.push(vec3(-1.0, -1.0, -1.0), vec3(1.0, 0.0, 0.0));
m_mesh.push(vec3( 1.0, -1.0, -1.0), vec3(0.0, 0.5, 0.0));
m_mesh.push(vec3( 1.0, 1.0, -1.0), vec3(0.0, 0.5, 1.0));
m_mesh.push(vec3(-1.0, 1.0, -1.0), vec3(0.0, 0.0, 1.0));

m_faces_indices << 0 << 1 << 2 << 2 << 3 << 0;
m_faces_indices << 1 << 5 << 6 << 6 << 2 << 1;
@@ -136,7 +136,7 @@ public:
m_yaw_angle += seconds * 20;
}

m_text->SetText(String::Printf(
m_text->SetText(String::format(
"cursor: (%0.3f, %0.3f) - pixel (%d, %d)",
m_mouse->GetCursor(0).x, m_mouse->GetCursor(0).y,
m_mouse->GetCursorPixel(0).x, m_mouse->GetCursorPixel(0).y));
@@ -170,19 +170,19 @@ public:
new VertexDeclaration(VertexStream<vec3,vec3>(VertexUsage::Position,
VertexUsage::Color));

m_vbo = new VertexBuffer(m_mesh.Bytes());
m_vbo = new VertexBuffer(m_mesh.bytes());
void *mesh = m_vbo->Lock(0, 0);
memcpy(mesh, &m_mesh[0], m_mesh.Bytes());
memcpy(mesh, &m_mesh[0], m_mesh.bytes());
m_vbo->Unlock();

m_lines_ibo = new IndexBuffer(m_lines_indices.Bytes());
m_lines_ibo = new IndexBuffer(m_lines_indices.bytes());
void *indices = m_lines_ibo->Lock(0, 0);
memcpy(indices, &m_lines_indices[0], m_lines_indices.Bytes());
memcpy(indices, &m_lines_indices[0], m_lines_indices.bytes());
m_lines_ibo->Unlock();

m_faces_ibo = new IndexBuffer(m_faces_indices.Bytes());
m_faces_ibo = new IndexBuffer(m_faces_indices.bytes());
indices = m_faces_ibo->Lock(0, 0);
memcpy(indices, &m_faces_indices[0], m_faces_indices.Bytes());
memcpy(indices, &m_faces_indices[0], m_faces_indices.bytes());
m_faces_ibo->Unlock();

/* FIXME: this object never cleans up */
@@ -198,13 +198,13 @@ public:
m_shader->SetUniform(m_mvp, m_matrix);
m_lines_ibo->Bind();
m_vdecl->DrawIndexedElements(MeshPrimitive::Lines, 0, 0,
(int)m_mesh.Count(), 0, (int)m_lines_indices.Count());
m_mesh.count(), 0, m_lines_indices.count());
m_lines_ibo->Unbind();

m_shader->SetUniform(m_mvp, m_matrix * mat4::scale(0.5f));
m_faces_ibo->Bind();
m_vdecl->DrawIndexedElements(MeshPrimitive::Triangles, 0, 0,
(int)m_mesh.Count(), 0, (int)m_faces_indices.Count());
m_mesh.count(), 0, m_faces_indices.count());
m_faces_ibo->Unbind();

m_vdecl->Unbind();


+ 2
- 2
doc/tutorial/08_fbo.cpp View File

@@ -66,9 +66,9 @@ public:

m_vdecl = new VertexDeclaration(VertexStream<vec2>(VertexUsage::Position));

m_vbo = new VertexBuffer(m_vertices.Bytes());
m_vbo = new VertexBuffer(m_vertices.bytes());
void *vertices = m_vbo->Lock(0, 0);
memcpy(vertices, &m_vertices[0], m_vertices.Bytes());
memcpy(vertices, &m_vertices[0], m_vertices.bytes());
m_vbo->Unlock();

m_fbo = new Framebuffer(Video::GetSize());


+ 4
- 4
doc/tutorial/11_fractal.cpp View File

@@ -54,7 +54,7 @@ public:

m_oldmouse = ivec2(0, 0);

m_pixels.Resize(m_size.x * m_size.y);
m_pixels.resize(m_size.x * m_size.y);
m_frame = -1;
m_slices = 4;
for (int i = 0; i < 4; i++)
@@ -97,11 +97,11 @@ public:
uint8_t green = (uint8_t)g * 256;
uint8_t blue = (uint8_t)b * 256;
#if defined _XBOX
m_palette.Push(u8vec4(255, red, green, blue));
m_palette.push(u8vec4(255, red, green, blue));
#elif defined __native_client__
m_palette.Push(u8vec4(red, green, blue, 255));
m_palette.push(u8vec4(red, green, blue, 255));
#else
m_palette.Push(u8vec4(blue, green, red, 255));
m_palette.push(u8vec4(blue, green, red, 255));
#endif
}



+ 22
- 22
doc/tutorial/12_voronoi.cpp View File

@@ -102,9 +102,9 @@ public:
{
m_vdecl = new VertexDeclaration(VertexStream<vec2>(VertexUsage::Position));

m_vbo = new VertexBuffer(m_vertices.Bytes());
m_vbo = new VertexBuffer(m_vertices.bytes());
void *vertices = m_vbo->Lock(0, 0);
memcpy(vertices, &m_vertices[0], m_vertices.Bytes());
memcpy(vertices, &m_vertices[0], m_vertices.bytes());
m_vbo->Unlock();

m_screen_shader = Shader::Create(LOLFX_RESOURCE_NAME(12_texture_to_screen));
@@ -113,7 +113,7 @@ public:

for (int i = 0; i < MaxFboType; ++i)
{
m_fbos.Push(new Framebuffer(Video::GetSize()), 0, array<ShaderUniform>(), array<ShaderAttrib>() );
m_fbos.push(new Framebuffer(Video::GetSize()), 0, array<ShaderUniform>(), array<ShaderAttrib>() );

if (i == SrcVoronoiFbo)
{
@@ -140,14 +140,14 @@ public:
m_fbos[i].m2 = Shader::Create(LOLFX_RESOURCE_NAME(12_distance));
}

m_fbos.Last().m1->Bind();
m_fbos.last().m1->Bind();
{
RenderContext rc;
rc.SetClearColor(vec4(0.f, 0.f, 0.f, 1.f));
rc.SetClearDepth(1.f);
Renderer::Get()->Clear(ClearMask::Color | ClearMask::Depth);
}
m_fbos.Last().m1->Unbind();
m_fbos.last().m1->Unbind();
}

temp_buffer = new Framebuffer(Video::GetSize());
@@ -170,9 +170,9 @@ public:
{
//Shutdown logic
if (m_controller->WasKeyReleasedThisFrame(KEY_POP))
voronoi_points.Pop();
voronoi_points.pop();
else if (m_controller->WasKeyReleasedThisFrame(KEY_PUSH))
voronoi_points.Push(vec3(rand<float>(512.f), rand<float>(512.f), .0f),
voronoi_points.push(vec3(rand<float>(512.f), rand<float>(512.f), .0f),
vec2(64.f + rand<float>(64.f), 64.f + rand<float>(64.f)));
else if (m_controller->WasKeyReleasedThisFrame(KEY_F1))
m_cur_fbo = SrcVoronoiFbo;
@@ -180,12 +180,12 @@ public:
m_cur_fbo = VoronoiFbo;
else if (m_controller->WasKeyReleasedThisFrame(KEY_F3))
{
voronoi_points.Empty();
voronoi_points.empty();
if (mode == 0)
{
int i = 4;
while (i-- > 0)
voronoi_points.Push(vec3(rand<float>(512.f), rand<float>(512.f), .0f),
voronoi_points.push(vec3(rand<float>(512.f), rand<float>(512.f), .0f),
vec2(64.f + rand<float>(64.f), 64.f + rand<float>(64.f))
//vec2::zero
);
@@ -200,19 +200,19 @@ public:

if (mode == 0)
{
voronoi_points.Empty();
voronoi_points.empty();
int maxi = 6;
for (int i = 0; i < maxi; ++i)
{
float mi = (float)maxi;
float j = (float)i;
float f_time = (float)m_time;
voronoi_points.Push(vec3(256.f) + 196.f * vec3(lol::cos( f_time + j * 2.f * F_PI / mi), lol::sin( f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
voronoi_points.Push(vec3(256.f) + 128.f * vec3(lol::cos(-f_time + j * 2.f * F_PI / mi), lol::sin(-f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
voronoi_points.Push(vec3(256.f) + 64.f * vec3(lol::cos( f_time + j * 2.f * F_PI / mi), lol::sin( f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
voronoi_points.Push(vec3(256.f) + 32.f * vec3(lol::cos(-f_time + j * 2.f * F_PI / mi), lol::sin(-f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
voronoi_points.push(vec3(256.f) + 196.f * vec3(lol::cos( f_time + j * 2.f * F_PI / mi), lol::sin( f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
voronoi_points.push(vec3(256.f) + 128.f * vec3(lol::cos(-f_time + j * 2.f * F_PI / mi), lol::sin(-f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
voronoi_points.push(vec3(256.f) + 64.f * vec3(lol::cos( f_time + j * 2.f * F_PI / mi), lol::sin( f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
voronoi_points.push(vec3(256.f) + 32.f * vec3(lol::cos(-f_time + j * 2.f * F_PI / mi), lol::sin(-f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
}
voronoi_points.Push(vec3(256.f), vec2(0.f));
voronoi_points.push(vec3(256.f), vec2(0.f));
}

temp_buffer->Bind();
@@ -227,7 +227,7 @@ public:
{
vec2 limit(1.f, 511.f);
//SRC SETUP
for (int j = 0; j < voronoi_points.Count(); ++j)
for (int j = 0; j < voronoi_points.count(); ++j)
{
voronoi_points[j].m1 = vec3(voronoi_points[j].m1.xy + voronoi_points[j].m2 * seconds, voronoi_points[j].m1.z);
if (voronoi_points[j].m1.x >= limit.y || voronoi_points[j].m1.x <= limit.x)
@@ -240,7 +240,7 @@ public:
voronoi_points[j].m2.y *= -1.f;
voronoi_points[j].m1.y = clamp(voronoi_points[j].m1.y, limit.x, limit.y);
}
voronoi_points[j].m1.z = ((float)j + 1) / ((float)voronoi_points.Count());
voronoi_points[j].m1.z = ((float)j + 1) / ((float)voronoi_points.count());
}

int f = SrcVoronoiFbo;
@@ -254,8 +254,8 @@ public:
}
m_fbos[f].m1->Unbind();

int buf = voronoi_points.Count() % 2;
for (int j = 0; j < voronoi_points.Count(); ++j)
int buf = voronoi_points.count() % 2;
for (int j = 0; j < voronoi_points.count(); ++j)
{
Framebuffer *dst_buf;
Framebuffer *src_buf;
@@ -281,7 +281,7 @@ public:
m_fbos[f].m2->SetUniform(m_fbos[f].m3[i++], voronoi_points[j].m1); //"in_source_point"
m_fbos[f].m2->SetUniform(m_fbos[f].m3[i++], vec2(512.f, 512.f)); //"in_screen_res"

m_vdecl->SetStream(m_vbo, m_fbos[f].m4.Last());
m_vdecl->SetStream(m_vbo, m_fbos[f].m4.last());
m_vdecl->Bind();
m_vdecl->DrawElements(MeshPrimitive::Triangles, 0, 6);
m_vdecl->Unbind();
@@ -345,7 +345,7 @@ public:
* This code snippet should be moved inside the Framebuffer class. */
//m_fbos[m_cur_fbo].m2->SetUniform(m_uni_flag, 1.f);
//m_fbos[m_cur_fbo].m2->SetUniform(m_uni_texture, m_fbo->GetTextureUniform(), 0);
//m_vdecl->SetStream(m_vbo, m_fbos[m_cur_fbo].m4.Last());
//m_vdecl->SetStream(m_vbo, m_fbos[m_cur_fbo].m4.last());
//m_vdecl->Bind();
//m_vdecl->DrawElements(MeshPrimitive::Triangles, 0, 6);
//m_vdecl->Unbind();
@@ -361,7 +361,7 @@ public:
shader->SetUniform(m_fbos[m_cur_fbo].m3[i++], vec2(512.f, 512.f)); //"in_screen_res"
}

m_vdecl->SetStream(m_vbo, m_fbos[m_cur_fbo].m4.Last());
m_vdecl->SetStream(m_vbo, m_fbos[m_cur_fbo].m4.last());
m_vdecl->Bind();
m_vdecl->DrawElements(MeshPrimitive::Triangles, 0, 6);
m_vdecl->Unbind();


+ 2
- 0
doc/tutorial/13_shader_builder.cpp View File

@@ -18,6 +18,8 @@

using namespace lol;

#define Line(x) ((x) + "\n")

class ShaderBuilderDemo : public WorldEntity
{
public:


+ 5
- 5
src/base/log.cpp View File

@@ -78,7 +78,7 @@ void Log::Helper(MessageType type, char const *fmt, va_list ap)
ANDROID_LOG_ERROR
};

String buf = String::VPrintf(fmt, ap);
String buf = String::vformat(fmt, ap);
__android_log_print(prio[type], "LOL", "[%d] %s", (int)gettid(), &buf[0]);

#else
@@ -91,12 +91,12 @@ void Log::Helper(MessageType type, char const *fmt, va_list ap)
};

# if defined _WIN32
String buf = String(prefix[type]) + ": " + String::VPrintf(fmt, ap);
String buf = String(prefix[type]) + ": " + String::vformat(fmt, ap);

array<WCHAR> widechar;
widechar.Resize(buf.Count() + 1);
MultiByteToWideChar(CP_UTF8, 0, buf.C(), (int)buf.Count() + 1, widechar.Data(), (int)widechar.Count());
OutputDebugStringW(widechar.Data());
widechar.Resize(buf.count() + 1);
MultiByteToWideChar(CP_UTF8, 0, buf.C(), buf.count() + 1, widechar.data(), widechar.count());
OutputDebugStringW(widechar.data());
# else
fprintf(stderr, "%s: ", prefix[type]);
vfprintf(stderr, fmt, ap);


+ 3
- 3
src/base/string.cpp View File

@@ -24,19 +24,19 @@
namespace lol
{

String String::Printf(char const *format, ...)
String String::format(char const *format, ...)
{
String ret;

va_list ap;
va_start(ap, format);
ret = String::VPrintf(format, ap);
ret = String::vformat(format, ap);
va_end(ap);

return ret;
}

String String::VPrintf(char const *format, va_list ap)
String String::vformat(char const *format, va_list ap)
{
String ret;



+ 4
- 4
src/commandstack.h View File

@@ -31,17 +31,17 @@ private:

public:
//GET/SET exec
ptrdiff_t GetCmdNb() { return m_commands.Count(); }
ptrdiff_t GetCmd(int i)
int GetCmdNb() { return m_commands.count(); }
int GetCmd(int i)
{
ASSERT(0 <= i && i < m_commands.Count());
ASSERT(0 <= i && i < m_commands.count());
m_f_cur = m_commands[i].m2;
m_i_cur = m_commands[i].m3;
return m_commands[i].m1;
}

//cmd storage
void AddCmd(int cmd) { m_commands.Push(cmd, (int)m_floats.Count(), (int)m_ints.Count()); }
void AddCmd(int cmd) { m_commands.push(cmd, m_floats.count(), m_ints.count()); }

//GETTER
inline float F() { return m_floats[m_f_cur++]; }


+ 6
- 6
src/dict.cpp View File

@@ -68,7 +68,7 @@ int Dict::MakeSlot(char const *name)

/* If the entry is already registered, remember its ID. Look for an
* empty slot at the same time. */
for (slotid = 0; slotid < data->m_entities.Count(); slotid++)
for (slotid = 0; slotid < data->m_entities.count(); slotid++)
{
Entity *e = data->m_entities[slotid];
if (!e)
@@ -95,12 +95,12 @@ int Dict::MakeSlot(char const *name)
}

/* If this is a new entry, create a new slot for it. */
if (slotid == data->m_entities.Count() || !data->m_entities[slotid])
if (slotid == data->m_entities.count() || !data->m_entities[slotid])
{
if (slotid == data->m_entities.Count())
if (slotid == data->m_entities.count())
{
empty = (int)data->m_entities.Count();
data->m_entities.Push(nullptr);
empty = (int)data->m_entities.count();
data->m_entities.push(nullptr);
}

data->m_entities[empty] = nullptr;
@@ -126,7 +126,7 @@ void Dict::RemoveSlot(int slotid)

void Dict::RemoveSlot(Entity *entity)
{
for (int slotid = 0; slotid < data->m_entities.Count(); slotid++)
for (int slotid = 0; slotid < data->m_entities.count(); slotid++)
if (data->m_entities[slotid] == entity)
{
RemoveSlot(slotid);


+ 91
- 91
src/easymesh/csgbsp.cpp View File

@@ -20,17 +20,17 @@ int CsgBsp::AddLeaf(int leaf_type, vec3 origin, vec3 normal, int above_idx)
if (leaf_type > 2 && leaf_type < -1)
return -1;

if ((m_tree.Count() == 0 && above_idx == -1) ||
if ((m_tree.count() == 0 && above_idx == -1) ||
(above_idx >= 0 &&
above_idx < m_tree.Count() &&
above_idx < m_tree.count() &&
leaf_type > LEAF_CURRENT &&
leaf_type < LEAF_ABOVE &&
m_tree[above_idx].m_leaves[leaf_type] == -1))
{
if (m_tree.Count() != 0)
m_tree[above_idx].m_leaves[leaf_type] = (int32_t)m_tree.Count();
m_tree.Push(CsgBspLeaf(origin, normal, above_idx));
return (int)m_tree.Count() - 1;
if (m_tree.count() != 0)
m_tree[above_idx].m_leaves[leaf_type] = (int32_t)m_tree.count();
m_tree.push(CsgBspLeaf(origin, normal, above_idx));
return m_tree.count() - 1;
}

return -1;
@@ -38,7 +38,7 @@ int CsgBsp::AddLeaf(int leaf_type, vec3 origin, vec3 normal, int above_idx)

int CsgBsp::TestPoint(int leaf_idx, vec3 point)
{
if (leaf_idx >= 0 && leaf_idx < m_tree.Count())
if (leaf_idx >= 0 && leaf_idx < m_tree.count())
{
vec3 p2o = point - m_tree[leaf_idx].m_origin;

@@ -63,20 +63,20 @@ void CsgBsp::AddTriangleToTree(int const &tri_idx, vec3 const &tri_p0, vec3 cons
array< int, int, vec3, vec3, vec3, int > Leaf_to_add;

//Tree is empty, so this leaf is the first
if (m_tree.Count() == 0)
if (m_tree.count() == 0)
{
AddLeaf(LEAF_CURRENT, tri_p0, cross(normalize(tri_p1 - tri_p0), normalize(tri_p2 - tri_p1)), LEAF_CURRENT);
m_tree.Last().m_tri_list.Push(tri_idx, tri_p0, tri_p1, tri_p2);
m_tree.last().m_tri_list.push(tri_idx, tri_p0, tri_p1, tri_p2);
return;
}

tri_to_process.Reserve(20);
tri_to_process.Push(0, tri_p0, tri_p1, tri_p2);
tri_to_process.reserve(20);
tri_to_process.push(0, tri_p0, tri_p1, tri_p2);

while (tri_to_process.Count())
while (tri_to_process.count())
{
int leaf_idx = tri_to_process.Last().m1;
vec3 v[3] = { tri_to_process.Last().m2, tri_to_process.Last().m3, tri_to_process.Last().m4 };
int leaf_idx = tri_to_process.last().m1;
vec3 v[3] = { tri_to_process.last().m2, tri_to_process.last().m3, tri_to_process.last().m4 };

int res_nb[3] = { 0, 0, 0 };
int res_side[3] = { -1, -1, -1 };
@@ -117,23 +117,23 @@ void CsgBsp::AddTriangleToTree(int const &tri_idx, vec3 const &tri_p0, vec3 cons
int v_idx1 = (isec_base == 1)?(0):(1);
int leaf_type = res_side[(isec_base + 2) % 3];

tri_to_process.Pop();
tri_to_process.pop();

#if 1
if (m_tree[leaf_idx].m_leaves[leaf_type] == LEAF_CURRENT)
Leaf_to_add.Push(leaf_type, leaf_idx, v[((isec_base + 2) % 3)], isec_v[v_idx1], isec_v[v_idx0], -1);
Leaf_to_add.push(leaf_type, leaf_idx, v[((isec_base + 2) % 3)], isec_v[v_idx1], isec_v[v_idx0], -1);
else
tri_to_process.Push(leaf_idx, v[((isec_base + 2) % 3)], isec_v[v_idx1], isec_v[v_idx0]);
tri_to_process.push(leaf_idx, v[((isec_base + 2) % 3)], isec_v[v_idx1], isec_v[v_idx0]);

if (m_tree[leaf_idx].m_leaves[1 - leaf_type] == LEAF_CURRENT)
{
Leaf_to_add.Push(1 - leaf_type, leaf_idx, v[isec_base], v[((isec_base + 1) % 3)], isec_v[v_idx0], -1);
Leaf_to_add.Push(1 - leaf_type, leaf_idx, v[isec_base], isec_v[v_idx0], isec_v[v_idx1], (int)Leaf_to_add.Count() - 1);
Leaf_to_add.push(1 - leaf_type, leaf_idx, v[isec_base], v[((isec_base + 1) % 3)], isec_v[v_idx0], -1);
Leaf_to_add.push(1 - leaf_type, leaf_idx, v[isec_base], isec_v[v_idx0], isec_v[v_idx1], Leaf_to_add.count() - 1);
}
else
{
tri_to_process.Push(m_tree[leaf_idx].m_leaves[1 - leaf_type], v[isec_base], v[((isec_base + 1) % 3)], isec_v[v_idx0]);
tri_to_process.Push(m_tree[leaf_idx].m_leaves[1 - leaf_type], v[isec_base], isec_v[v_idx0], isec_v[v_idx1]);
tri_to_process.push(m_tree[leaf_idx].m_leaves[1 - leaf_type], v[isec_base], v[((isec_base + 1) % 3)], isec_v[v_idx0]);
tri_to_process.push(m_tree[leaf_idx].m_leaves[1 - leaf_type], v[isec_base], isec_v[v_idx0], isec_v[v_idx1]);
}
#else
vec3 new_v[9] = { v[((isec_base + 2) % 3)], isec_v[v_idx1], isec_v[v_idx0],
@@ -158,7 +158,7 @@ void CsgBsp::AddTriangleToTree(int const &tri_idx, vec3 const &tri_p0, vec3 cons
if (skip_tri)
continue;

tri_to_process.Push(0, new_v[k], new_v[k + 1], new_v[k + 2]);
tri_to_process.push(0, new_v[k], new_v[k + 1], new_v[k + 2]);
}
#endif
}
@@ -171,43 +171,43 @@ void CsgBsp::AddTriangleToTree(int const &tri_idx, vec3 const &tri_p0, vec3 cons
//No leaf exist, so add a new one
if (new_leaf == LEAF_CURRENT)
{
tri_to_process.Pop();
Leaf_to_add.Push(new_leaf_type, leaf_idx, v[0], v[1], v[2], -1);
tri_to_process.pop();
Leaf_to_add.push(new_leaf_type, leaf_idx, v[0], v[1], v[2], -1);
}
else
tri_to_process.Last().m1 = new_leaf;
tri_to_process.last().m1 = new_leaf;
}
//All points are on the current leaf, add the tri_idx to the list of this leaf.
else
{
tri_to_process.Pop();
tri_to_process.pop();

bool already_exist = false;
for (int i = 0; !already_exist && i < m_tree[leaf_idx].m_tri_list.Count(); i++)
for (int i = 0; !already_exist && i < m_tree[leaf_idx].m_tri_list.count(); i++)
already_exist = (m_tree[leaf_idx].m_tri_list[i].m1 == tri_idx);
if (!already_exist)
m_tree[leaf_idx].m_tri_list.Push(tri_idx, tri_p0, tri_p1, tri_p2);
m_tree[leaf_idx].m_tri_list.push(tri_idx, tri_p0, tri_p1, tri_p2);
}
}

//Add all leaves to the tree.
for (int i = 0; i < Leaf_to_add.Count(); i++)
for (int i = 0; i < Leaf_to_add.count(); i++)
{
//If we had it to an already existing leaf.
if (Leaf_to_add[i].m2 < m_tree.Count() && m_tree[Leaf_to_add[i].m2].m_leaves[Leaf_to_add[i].m1] == LEAF_CURRENT)
if (Leaf_to_add[i].m2 < m_tree.count() && m_tree[Leaf_to_add[i].m2].m_leaves[Leaf_to_add[i].m1] == LEAF_CURRENT)
{
AddLeaf(Leaf_to_add[i].m1, tri_p0, cross(normalize(tri_p1 - tri_p0), normalize(tri_p2 - tri_p1)), Leaf_to_add[i].m2);
m_tree.Last().m_tri_list.Push(tri_idx, tri_p0, tri_p1, tri_p2);
m_tree.last().m_tri_list.push(tri_idx, tri_p0, tri_p1, tri_p2);
}

/*
if (Leaf_to_add[i].m6 == -1)
{
AddLeaf(Leaf_to_add[i].m1, tri_p0, cross(normalize(tri_p1 - tri_p0), normalize(tri_p2 - tri_p1)), Leaf_to_add[i].m2);
m_tree.Last().m_tri_list.Push(tri_idx, tri_p0, tri_p1, tri_p2);
m_tree.last().m_tri_list.push(tri_idx, tri_p0, tri_p1, tri_p2);
}
else
m_tree[Leaf_to_add[i].m6].m_tri_list.Push(tri_idx, tri_p0, tri_p1, tri_p2);
m_tree[Leaf_to_add[i].m6].m_tri_list.push(tri_idx, tri_p0, tri_p1, tri_p2);
*/
}
}
@@ -228,27 +228,27 @@ int CsgBsp::TestTriangleToTree(vec3 const &tri_p0, vec3 const &tri_p1, vec3 cons
array< array< int >, int, int, int, int > tri_to_process;

//Tree is empty, ABORT !
if (m_tree.Count() == 0)
if (m_tree.count() == 0)
return -1;

//Let's push the source vertices in here.
vert_list.Push(tri_p0, -1, -1, .0f);
vert_list.Push(tri_p1, -1, -1, .0f);
vert_list.Push(tri_p2, -1, -1, .0f);
vert_list.push(tri_p0, -1, -1, .0f);
vert_list.push(tri_p1, -1, -1, .0f);
vert_list.push(tri_p2, -1, -1, .0f);

//Let's push the triangle in here.
tri_to_process.Reserve(20);
tri_to_process.Push( array< int >(), 0, 1, 2, 0);
tri_to_process.Last().m1.Push(0);
tri_to_process.reserve(20);
tri_to_process.push( array< int >(), 0, 1, 2, 0);
tri_to_process.last().m1.push(0);

while (tri_to_process.Count())
while (tri_to_process.count())
{
while (tri_to_process.Count())
while (tri_to_process.count())
{
int leaf_idx = tri_to_process.Last().m1.Last();
int t[3] = { tri_to_process.Last().m2,
tri_to_process.Last().m3,
tri_to_process.Last().m4 };
int leaf_idx = tri_to_process.last().m1.last();
int t[3] = { tri_to_process.last().m2,
tri_to_process.last().m3,
tri_to_process.last().m4 };
vec3 v[3] = { vert_list[t[0]].m1,
vert_list[t[1]].m1,
vert_list[t[2]].m1 };
@@ -277,7 +277,7 @@ int CsgBsp::TestTriangleToTree(vec3 const &tri_p0, vec3 const &tri_p1, vec3 cons
int isec_idx = 0;

int i = 0;
for (; i < m_tree[leaf_idx].m_tri_list.Count(); i++)
for (; i < m_tree[leaf_idx].m_tri_list.count(); i++)
{
if (TestTriangleVsTriangle(v[0], v[1], v[2],
m_tree[leaf_idx].m_tri_list[i].m2, m_tree[leaf_idx].m_tri_list[i].m3, m_tree[leaf_idx].m_tri_list[i].m4,
@@ -286,27 +286,27 @@ int CsgBsp::TestTriangleToTree(vec3 const &tri_p0, vec3 const &tri_p1, vec3 cons
}

//There was no triangle intersection, the complex case.
if (i == m_tree[leaf_idx].m_tri_list.Count())
if (i == m_tree[leaf_idx].m_tri_list.count())
{
if (m_tree[leaf_idx].m_leaves[LEAF_FRONT] == LEAF_CURRENT &&
m_tree[leaf_idx].m_leaves[LEAF_BACK] == LEAF_CURRENT &&
tri_to_process.Last().m1.Count() == 1)
tri_to_process.last().m1.count() == 1)
{
tri_list.Push(LEAF_CURRENT, tri_to_process.Last().m2, tri_to_process.Last().m3, tri_to_process.Last().m4);
tri_to_process.Pop();
tri_list.push(LEAF_CURRENT, tri_to_process.last().m2, tri_to_process.last().m3, tri_to_process.last().m4);
tri_to_process.pop();
}
else
{
tri_to_process.Last().m1.Pop();
tri_to_process.last().m1.pop();

//Register the triangle as needing to intersect with Front & back leaves.
if (m_tree[leaf_idx].m_leaves[LEAF_FRONT] != LEAF_CURRENT)
tri_to_process.Last().m1.Push(m_tree[leaf_idx].m_leaves[LEAF_FRONT]);
tri_to_process.last().m1.push(m_tree[leaf_idx].m_leaves[LEAF_FRONT]);
if (m_tree[leaf_idx].m_leaves[LEAF_BACK] != LEAF_CURRENT)
tri_to_process.Last().m1.Push(m_tree[leaf_idx].m_leaves[LEAF_BACK]);
tri_to_process.last().m1.push(m_tree[leaf_idx].m_leaves[LEAF_BACK]);
//Mark the triangle as needing point by point test

tri_to_process.Last().m5 = 1;
tri_to_process.last().m5 = 1;
}
}
//there was an intersection, so let's split the triangle.
@@ -339,11 +339,11 @@ int CsgBsp::TestTriangleToTree(vec3 const &tri_p0, vec3 const &tri_p1, vec3 cons
if (skip_point)
continue;
#endif
new_v_idx[k] = (int)vert_list.Count();
new_v_idx[k] = vert_list.count();
vec3 PmV0 = (isec_v[k] - vert_list[t[isec_i[k]]].m1);
vec3 V1mV0 = (vert_list[t[(isec_i[k] + 1) % 3]].m1 - vert_list[t[isec_i[k]]].m1);
float alpha = length(PmV0) / length(V1mV0);
vert_list.Push(isec_v[k],
vert_list.push(isec_v[k],
t[isec_i[k]], t[(isec_i[k] + 1) % 3],
//Alpha = length((Point_Loc - Src_V0) / (Src_V1 - Src_V0));
alpha);
@@ -353,31 +353,31 @@ int CsgBsp::TestTriangleToTree(vec3 const &tri_p0, vec3 const &tri_p1, vec3 cons
int v_idx1 = (isec_base == 1)?(0):(1);
//Leaf_type is the type for the triangle that is alone on its side.
int leaf_type = res_side[(isec_base + 2) % 3];
int tri_to_remove = (int)tri_to_process.Count() - 1;
int tri_to_remove = tri_to_process.count() - 1;

#if 0
if (m_tree[leaf_idx].m_leaves[leaf_type] == LEAF_CURRENT && tri_to_process.Last().m1.Last() == 1)
tri_list.Push(leaf_type,
if (m_tree[leaf_idx].m_leaves[leaf_type] == LEAF_CURRENT && tri_to_process.last().m1.last() == 1)
tri_list.push(leaf_type,
t[(isec_base + 2) % 3], new_v_idx[v_idx1], new_v_idx[v_idx0]);
else
{
tri_to_process.Push(array< int >(), t[(isec_base + 2) % 3], new_v_idx[v_idx1], new_v_idx[v_idx0], 0);
tri_to_process.Last().m1.Push(0);
tri_to_process.push(array< int >(), t[(isec_base + 2) % 3], new_v_idx[v_idx1], new_v_idx[v_idx0], 0);
tri_to_process.last().m1.push(0);
}

if (m_tree[leaf_idx].m_leaves[1 - leaf_type] == LEAF_CURRENT && tri_to_process.Last().m1.Last() == 1)
if (m_tree[leaf_idx].m_leaves[1 - leaf_type] == LEAF_CURRENT && tri_to_process.last().m1.last() == 1)
{
tri_list.Push((tri_to_process.Last().m5)?(LEAF_CURRENT):(1 - leaf_type),
tri_list.push((tri_to_process.last().m5)?(LEAF_CURRENT):(1 - leaf_type),
t[isec_base], new_v_idx[((isec_base + 1) % 3)], new_v_idx[v_idx0]);
tri_list.Push((tri_to_process.Last().m5)?(LEAF_CURRENT):(1 - leaf_type),
tri_list.push((tri_to_process.last().m5)?(LEAF_CURRENT):(1 - leaf_type),
t[isec_base], new_v_idx[v_idx0], new_v_idx[v_idx1]);
}
else
{
tri_to_process.Push(array< int >(), t[isec_base], t[((isec_base + 1) % 3)], new_v_idx[v_idx0], 0);
tri_to_process.Last().m1.Push(0);
tri_to_process.Push(array< int >(), t[isec_base], new_v_idx[v_idx0], new_v_idx[v_idx1], 0);
tri_to_process.Last().m1.Push(0);
tri_to_process.push(array< int >(), t[isec_base], t[((isec_base + 1) % 3)], new_v_idx[v_idx0], 0);
tri_to_process.last().m1.push(0);
tri_to_process.push(array< int >(), t[isec_base], new_v_idx[v_idx0], new_v_idx[v_idx1], 0);
tri_to_process.last().m1.push(0);
}
#else
int new_t[9] = { t[(isec_base + 2) % 3], new_v_idx[v_idx1], new_v_idx[v_idx0],
@@ -407,25 +407,25 @@ int CsgBsp::TestTriangleToTree(vec3 const &tri_p0, vec3 const &tri_p1, vec3 cons
continue;
#endif
#if 0 //Send the newly created triangle back to the beginning
tri_to_process.Push(array< int >(), new_t[k], new_t[k + 1], new_t[k + 2], 0);
tri_to_process.Last().m1.Push(0);
tri_to_process.push(array< int >(), new_t[k], new_t[k + 1], new_t[k + 2], 0);
tri_to_process.last().m1.push(0);
#else //Inherit parent tree
if (m_tree[leaf_idx].m_leaves[new_side[k / 3]] == LEAF_CURRENT && tri_to_process[tri_to_remove].m1.Count() == 1)
tri_list.Push(new_side[k / 3], new_t[k], new_t[k + 1], new_t[k + 2]);
if (m_tree[leaf_idx].m_leaves[new_side[k / 3]] == LEAF_CURRENT && tri_to_process[tri_to_remove].m1.count() == 1)
tri_list.push(new_side[k / 3], new_t[k], new_t[k + 1], new_t[k + 2]);
else
{
tri_to_process.Push(array< int >(), new_t[k], new_t[k + 1], new_t[k + 2], 0);
tri_to_process.Last().m1 = tri_to_process[tri_to_remove].m1;
tri_to_process.push(array< int >(), new_t[k], new_t[k + 1], new_t[k + 2], 0);
tri_to_process.last().m1 = tri_to_process[tri_to_remove].m1;
if (m_tree[leaf_idx].m_leaves[new_side[k / 3]] == LEAF_CURRENT)
tri_to_process.Last().m1.Pop();
tri_to_process.last().m1.pop();
else
tri_to_process.Last().m1.Last() = m_tree[leaf_idx].m_leaves[new_side[k / 3]];
tri_to_process.last().m1.last() = m_tree[leaf_idx].m_leaves[new_side[k / 3]];
}
#endif
}
#endif

tri_to_process.Remove(tri_to_remove);
tri_to_process.remove(tri_to_remove);
}
}
}
@@ -440,29 +440,29 @@ int CsgBsp::TestTriangleToTree(vec3 const &tri_p0, vec3 const &tri_p1, vec3 cons
if (new_leaf == LEAF_CURRENT)
{
//We still need to test other leaves.
if (tri_to_process.Last().m1.Count() > 1)
tri_to_process.Last().m1.Pop();
if (tri_to_process.last().m1.count() > 1)
tri_to_process.last().m1.pop();
else
{
tri_list.Push((tri_to_process.Last().m5)?(LEAF_CURRENT):(new_leaf_type),
tri_to_process.Last().m2, tri_to_process.Last().m3, tri_to_process.Last().m4);
tri_to_process.Pop();
tri_list.push((tri_to_process.last().m5)?(LEAF_CURRENT):(new_leaf_type),
tri_to_process.last().m2, tri_to_process.last().m3, tri_to_process.last().m4);
tri_to_process.pop();
}
}
else
tri_to_process.Last().m1.Last() = new_leaf;
tri_to_process.last().m1.last() = new_leaf;
}
//All points are on the current leaf, add the tri_idx to the list of this leaf.
else
{
//TODO : Special case, handle coplanar cut.
tri_list.Push(LEAF_CURRENT, tri_to_process.Last().m2, tri_to_process.Last().m3, tri_to_process.Last().m4);
tri_to_process.Pop();
tri_list.push(LEAF_CURRENT, tri_to_process.last().m2, tri_to_process.last().m3, tri_to_process.last().m4);
tri_to_process.pop();
}
}

//Now that we have all the split points, let's double-check the results
for (int i = 0; i < tri_list.Count(); i++)
for (int i = 0; i < tri_list.count(); i++)
{
#define TEST_MAX 4
int t[3] = { tri_list[i].m2,
@@ -512,9 +512,9 @@ int CsgBsp::TestTriangleToTree(vec3 const &tri_p0, vec3 const &tri_p1, vec3 cons
res_total = res_total;
tri_list[i].m1 = LEAF_BACK;
#if 0
tri_to_process.Push( array< int >(), tri_list[i].m2, tri_list[i].m3, tri_list[i].m4, 0);
tri_to_process.Last().m1.Push(0);
tri_list.Remove(i--);
tri_to_process.push( array< int >(), tri_list[i].m2, tri_list[i].m3, tri_list[i].m4, 0);
tri_to_process.last().m1.push(0);
tri_list.remove(i--);
break;
#endif
}
@@ -534,7 +534,7 @@ int CsgBsp::TestTriangleToTree(vec3 const &tri_p0, vec3 const &tri_p1, vec3 cons
}
}

if (tri_list.Count() == 1)
if (tri_list.count() == 1)
return 0;
return 1;
}


+ 2
- 2
src/easymesh/easymesh.cpp View File

@@ -22,7 +22,7 @@ namespace lol
EasyMesh::EasyMesh()
: m_build_data(nullptr)
{
m_cursors.Push(0, 0);
m_cursors.push(0, 0);
m_state = MeshRender::NeedData;
}

@@ -35,7 +35,7 @@ EasyMesh::EasyMesh(const EasyMesh& em)
m_build_data = nullptr;
if (em.m_build_data)
m_build_data = new EasyMeshBuildData(*em.m_build_data);
if (m_indices.Count() && m_vert.Count() && m_cursors.Count())
if (m_indices.count() && m_vert.count() && m_cursors.count())
m_state = MeshRender::NeedConvert;
else
m_state = MeshRender::NeedData;


+ 1
- 1
src/easymesh/easymesh.h View File

@@ -401,7 +401,7 @@ public:

//Convenience functions
public:
ptrdiff_t GetVertexCount() { return m_vert.Count(); }
int GetVertexCount() { return m_vert.count(); }
vec3 const &GetVertexLocation(int i) { return m_vert[i].m_coord; }

//private:


+ 19
- 19
src/easymesh/easymeshbuild.cpp View File

@@ -20,7 +20,7 @@ namespace lol
int VertexDictionnary::FindVertexMaster(const int search_idx)
{
//Resolve current vertex idx in the dictionnary (if exist)
for (int j = 0; j < vertex_list.Count(); j++)
for (int j = 0; j < vertex_list.count(); j++)
if (vertex_list[j].m1 == search_idx)
return vertex_list[j].m3;
return VDictType::DoesNotExist;
@@ -40,11 +40,11 @@ bool VertexDictionnary::FindMatchingVertices(const int search_idx, array<int> &m
else
matching_ids << vertex_list[cur_mast].m1;

for (int j = 0; j < vertex_list.Count(); j++)
for (int j = 0; j < vertex_list.count(); j++)
if (vertex_list[j].m3 == cur_mast && vertex_list[j].m1 != search_idx)
matching_ids << vertex_list[j].m1;

return (matching_ids.Count() > 0);
return (matching_ids.count() > 0);
}

//-----------------------------------------------------------------------------
@@ -54,7 +54,7 @@ bool VertexDictionnary::FindConnectedVertices(const int search_idx, const array<
array<int> connected_tri;
FindConnectedTriangles(search_idx, tri_list, tri0, connected_tri, ignored_tri);

for (int i = 0; i < connected_tri.Count(); i++)
for (int i = 0; i < connected_tri.count(); i++)
{
for (int j = 0; j < 3; j++)
{
@@ -67,7 +67,7 @@ bool VertexDictionnary::FindConnectedVertices(const int search_idx, const array<
if (found_master != search_idx)
{
bool already_exist = false;
for (int k = 0; !already_exist && k < connected_vert.Count(); k++)
for (int k = 0; !already_exist && k < connected_vert.count(); k++)
if (connected_vert[k] == found_master)
already_exist = true;
if (!already_exist)
@@ -76,7 +76,7 @@ bool VertexDictionnary::FindConnectedVertices(const int search_idx, const array<
}
}
}
return (connected_vert.Count() > 0);
return (connected_vert.count() > 0);
}
//-----------------------------------------------------------------------------
bool VertexDictionnary::FindConnectedTriangles(const int search_idx, const array<uint16_t> &tri_list, const int tri0, array<int> &connected_tri, array<int> const *ignored_tri)
@@ -108,12 +108,12 @@ bool VertexDictionnary::FindConnectedTriangles(const ivec3 &search_idx, const ar
}
}

for (int i = tri0; i < tri_list.Count(); i += 3)
for (int i = tri0; i < tri_list.count(); i += 3)
{
if (ignored_tri)
{
bool should_pass = false;
for (int j = 0; !should_pass && j < ignored_tri->Count(); j++)
for (int j = 0; !should_pass && j < ignored_tri->count(); j++)
if ((*ignored_tri)[j] == i)
should_pass = true;
if (should_pass)
@@ -123,7 +123,7 @@ bool VertexDictionnary::FindConnectedTriangles(const ivec3 &search_idx, const ar
for (int j = 0; j < 3; j++)
{
bool validated = false;
for (int k = 0; !validated && k < vert_list[j].Count(); k++)
for (int k = 0; !validated && k < vert_list[j].count(); k++)
for (int l = 0; !validated && l < 3; l++)
if (vert_list[j][k] == tri_list[i + l])
validated = true;
@@ -134,20 +134,20 @@ bool VertexDictionnary::FindConnectedTriangles(const ivec3 &search_idx, const ar
connected_tri << i;
}

return (connected_tri.Count() > 0);
return (connected_tri.count() > 0);
}

//-----------------------------------------------------------------------------
//Will update the given list with all the vertices on the same spot.
void VertexDictionnary::RegisterVertex(const int vert_id, const vec3 vert_coord)
{
for (int j = 0; j < vertex_list.Count(); j++)
for (int j = 0; j < vertex_list.count(); j++)
if (vertex_list[j].m1 == vert_id)
return;

//First, build the vertex Dictionnary
int i = 0;
for (; i < master_list.Count(); i++)
for (; i < master_list.count(); i++)
{
int cur_mast = master_list[i];
int cur_id = vertex_list[cur_mast].m1;
@@ -161,14 +161,14 @@ void VertexDictionnary::RegisterVertex(const int vert_id, const vec3 vert_coord)
{
if (cur_type == VDictType::Alone)
cur_type = VDictType::Master;
vertex_list.Push(vert_id, vert_coord, cur_mast);
vertex_list.push(vert_id, vert_coord, cur_mast);
return;
}
}

//We're here because we couldn't find any matching vertex
master_list.Push((int)vertex_list.Count());
vertex_list.Push(vert_id, vert_coord, VDictType::Alone);
master_list.push(vertex_list.count());
vertex_list.push(vert_id, vert_coord, VDictType::Alone);
}

//-----------------------------------------------------------------------------
@@ -176,7 +176,7 @@ void VertexDictionnary::RegisterVertex(const int vert_id, const vec3 vert_coord)
void VertexDictionnary::RemoveVertex(const int vert_id)
{
int j = 0;
for (; j < vertex_list.Count(); j++)
for (; j < vertex_list.count(); j++)
if (vertex_list[j].m1 == vert_id)
break;

@@ -184,7 +184,7 @@ void VertexDictionnary::RemoveVertex(const int vert_id)
{
int jf = -1;
//change all the master ref in the list
for (int i = 0; i < vertex_list.Count(); i++)
for (int i = 0; i < vertex_list.count(); i++)
{
if (vertex_list[i].m3 == j)
{
@@ -198,8 +198,8 @@ void VertexDictionnary::RemoveVertex(const int vert_id)
}
}
}
vertex_list.Remove(j);
for (int i = 0; i < master_list.Count(); i++)
vertex_list.remove(j);
for (int i = 0; i < master_list.count(); i++)
if (master_list[j] == j)
break;
}


+ 8
- 8
src/easymesh/easymeshbuild.h View File

@@ -310,8 +310,8 @@ public:
}
void SetTexCoordCustomBuild(MeshType mt, MeshFaceType face, vec2 BL, vec2 TR)
{
if (face.ToScalar() >= m_texcoord_custom_build[mt.ToScalar()].Count())
m_texcoord_custom_build[mt.ToScalar()].Resize(face.ToScalar() + 1);
if (face.ToScalar() >= m_texcoord_custom_build[mt.ToScalar()].count())
m_texcoord_custom_build[mt.ToScalar()].resize(face.ToScalar() + 1);
m_texcoord_custom_build[mt.ToScalar()][face.ToScalar()].m1 = BL;
m_texcoord_custom_build[mt.ToScalar()][face.ToScalar()].m2 = TR;
m_texcoord_build_type[mt.ToScalar()] |= 1;
@@ -323,7 +323,7 @@ public:
vec2 BL = vec2(0.f);
vec2 TR = vec2(0.f);
if (m_texcoord_build_type[mt.ToScalar()] & 1
&& face.ToScalar() < m_texcoord_custom_build[mt.ToScalar()].Count())
&& face.ToScalar() < m_texcoord_custom_build[mt.ToScalar()].count())
{
BL = m_texcoord_custom_build[mt.ToScalar()][face.ToScalar()].m1;
TR = m_texcoord_custom_build[mt.ToScalar()][face.ToScalar()].m2;
@@ -398,8 +398,8 @@ public:
}
void SetTexCoordCustomBuild2(MeshType mt, MeshFaceType face, vec2 BL, vec2 TR)
{
if (face.ToScalar() >= m_texcoord_custom_build2[mt.ToScalar()].Count())
m_texcoord_custom_build2[mt.ToScalar()].Resize(face.ToScalar() + 1);
if (face.ToScalar() >= m_texcoord_custom_build2[mt.ToScalar()].count())
m_texcoord_custom_build2[mt.ToScalar()].resize(face.ToScalar() + 1);
m_texcoord_custom_build2[mt.ToScalar()][face.ToScalar()].m1 = BL;
m_texcoord_custom_build2[mt.ToScalar()][face.ToScalar()].m2 = TR;
m_texcoord_build_type2[mt.ToScalar()] |= 1;
@@ -410,7 +410,7 @@ public:
vec2 BL = vec2(0.f);
vec2 TR = vec2(0.f);
if (m_texcoord_build_type2[mt.ToScalar()] & 1
&& face.ToScalar() < m_texcoord_custom_build2[mt.ToScalar()].Count())
&& face.ToScalar() < m_texcoord_custom_build2[mt.ToScalar()].count())
{
BL = m_texcoord_custom_build2[mt.ToScalar()][face.ToScalar()].m1;
TR = m_texcoord_custom_build2[mt.ToScalar()][face.ToScalar()].m2;
@@ -529,8 +529,8 @@ public:
bool FindConnectedTriangles(const ivec3 &search_idx, const array<uint16_t> &tri_list, const int tri0, array<int> &connected_tri, array<int> const *ignored_tri = nullptr);
void RegisterVertex(int vert_id, vec3 vert_coord);
void RemoveVertex(int vert_id);
bool GetMasterList(array<int> &ret_master_list) { ret_master_list = master_list; return ret_master_list.Count() > 0; }
void Clear() { vertex_list.Empty(); }
bool GetMasterList(array<int> &ret_master_list) { ret_master_list = master_list; return ret_master_list.count() > 0; }
void Clear() { vertex_list.empty(); }
private:
//<VertexId, VertexLocation, VertexMasterId>
array<int, vec3, int> vertex_list;


+ 39
- 39
src/easymesh/easymeshcsg.cpp View File

@@ -41,34 +41,34 @@ void EasyMesh::MeshCsg(CSGUsage csg_operation)
//keep a track of the intersection point on the triangle. <pos, side_id>
array< vec3, int > triangle_vertex;
for (int k = 0; k < 10; k++)
triangle_vertex.Push(vec3(.0f), 0);
triangle_vertex.push(vec3(.0f), 0);

//bsp infos
CsgBsp mesh_bsp_0;
CsgBsp mesh_bsp_1;

if (m_cursors.Count() == 0)
if (m_cursors.count() == 0)
return;

//BSP BUILD : We use the brace logic, csg should be used as : "[ exp .... [exp .... csg]]"
int cursor_start = (m_cursors.Count() < 2)?(0):(m_cursors[(m_cursors.Count() - 2)].m2);
int cursor_start = (m_cursors.count() < 2)?(0):(m_cursors[(m_cursors.count() - 2)].m2);
for (int mesh_id = 0; mesh_id < 2; mesh_id++)
{
ptrdiff_t start_point = (mesh_id == 0) ? (cursor_start) : (m_cursors.Last().m2);
ptrdiff_t end_point = (mesh_id == 0) ? (m_cursors.Last().m2) : (m_indices.Count());
int start_point = (mesh_id == 0) ? (cursor_start) : (m_cursors.last().m2);
int end_point = (mesh_id == 0) ? (m_cursors.last().m2) : (m_indices.count());
CsgBsp &mesh_bsp = (mesh_id == 0) ? (mesh_bsp_0) : (mesh_bsp_1);
for (ptrdiff_t i = start_point; i < end_point; i += 3)
mesh_bsp.AddTriangleToTree((int)i, m_vert[m_indices[i]].m_coord,
for (int i = start_point; i < end_point; i += 3)
mesh_bsp.AddTriangleToTree(i, m_vert[m_indices[i]].m_coord,
m_vert[m_indices[i + 1]].m_coord,
m_vert[m_indices[i + 2]].m_coord);
}

//BSP Usage : let's crunch all triangles on the correct BSP
ptrdiff_t indices_count = m_indices.Count();
for (ptrdiff_t mesh_id = 0; mesh_id < 2; mesh_id++)
int indices_count = m_indices.count();
for (int mesh_id = 0; mesh_id < 2; mesh_id++)
{
ptrdiff_t start_point = (mesh_id == 0) ? (cursor_start) : (m_cursors.Last().m2);
ptrdiff_t end_point = (mesh_id == 0) ? (m_cursors.Last().m2) : (indices_count);
int start_point = (mesh_id == 0) ? (cursor_start) : (m_cursors.last().m2);
int end_point = (mesh_id == 0) ? (m_cursors.last().m2) : (indices_count);
CsgBsp &mesh_bsp = (mesh_id == 0) ? (mesh_bsp_1) : (mesh_bsp_0);
array< vec3, int, int, float > vert_list;
array< int, int, int, int > tri_list;
@@ -76,26 +76,26 @@ void EasyMesh::MeshCsg(CSGUsage csg_operation)
vec4 c0(.0f); vec4 c1(.0f);

//Reserve some memory
vert_list.Reserve(3);
tri_list.Reserve(3);
vert_list.reserve(3);
tri_list.reserve(3);

for (ptrdiff_t i = start_point; i < end_point; i += 3)
for (int i = start_point; i < end_point; i += 3)
{
int Result = mesh_bsp.TestTriangleToTree(m_vert[m_indices[i]].m_coord,
m_vert[m_indices[i + 1]].m_coord,
m_vert[m_indices[i + 2]].m_coord, vert_list, tri_list);
ptrdiff_t tri_base_idx = m_indices.Count();
int tri_base_idx = m_indices.count();

//one split has been done, we need to had the new vertices & the new triangles.
if (Result == 1)
{
triangle_to_kill.Push((int)i);
triangle_to_kill.push(i);
#if 1
ptrdiff_t base_idx = m_vert.Count();
for (ptrdiff_t k = 3; k < vert_list.Count(); k++)
int base_idx = m_vert.count();
for (int k = 3; k < vert_list.count(); k++)
{
ptrdiff_t P0 = (vert_list[k].m2 < 3) ? (m_indices[i + vert_list[k].m2]) : (base_idx + vert_list[k].m2 - 3);
ptrdiff_t P1 = (vert_list[k].m3 < 3) ? (m_indices[i + vert_list[k].m3]) : (base_idx + vert_list[k].m3 - 3);
int P0 = (vert_list[k].m2 < 3) ? (m_indices[i + vert_list[k].m2]) : (base_idx + vert_list[k].m2 - 3);
int P1 = (vert_list[k].m3 < 3) ? (m_indices[i + vert_list[k].m3]) : (base_idx + vert_list[k].m3 - 3);

AddVertex(vert_list[k].m1);

@@ -117,11 +117,11 @@ void EasyMesh::MeshCsg(CSGUsage csg_operation)
SetCurVertColor(vec4(.0f, 1.0f, 1.0f, 1.0f));
#endif
}
for (ptrdiff_t k = 0; k < tri_list.Count(); k++)
for (int k = 0; k < tri_list.count(); k++)
{
int P0 = (int)(tri_list[k].m2 < 3) ? (m_indices[i + tri_list[k].m2]) : ((int)base_idx + (tri_list[k].m2 - 3));
int P1 = (int)(tri_list[k].m3 < 3) ? (m_indices[i + tri_list[k].m3]) : ((int)base_idx + (tri_list[k].m3 - 3));
int P2 = (int)(tri_list[k].m4 < 3) ? (m_indices[i + tri_list[k].m4]) : ((int)base_idx + (tri_list[k].m4 - 3));
int P0 = (tri_list[k].m2 < 3) ? (m_indices[i + tri_list[k].m2]) : (base_idx + (tri_list[k].m2 - 3));
int P1 = (tri_list[k].m3 < 3) ? (m_indices[i + tri_list[k].m3]) : (base_idx + (tri_list[k].m3 - 3));
int P2 = (tri_list[k].m4 < 3) ? (m_indices[i + tri_list[k].m4]) : (base_idx + (tri_list[k].m4 - 3));
AddTriangle(P0, P1, P2, 0);
}
#endif
@@ -130,9 +130,9 @@ void EasyMesh::MeshCsg(CSGUsage csg_operation)
//Main case
if (Result >= 0)
{
for (int k = 0; k < tri_list.Count(); k++)
for (int k = 0; k < tri_list.count(); k++)
{
ptrdiff_t tri_idx = (ptrdiff_t)((tri_list.Count() == 1) ? (i) : ((int)tri_base_idx + k * 3));
int tri_idx = (tri_list.count() == 1) ? (i) : (tri_base_idx + k * 3);

//Triangle Kill Test
if (//csgu : CSGUnion() -> m0_Outside + m1_Outside
@@ -147,7 +147,7 @@ void EasyMesh::MeshCsg(CSGUsage csg_operation)
//csga : CSGAnd() -> m0_Inside + m1_Inside
(csg_operation == CSGUsage::And && tri_list[k].m1 == LEAF_FRONT))
{
triangle_to_kill.Push((int)tri_idx);
triangle_to_kill.push(tri_idx);
}

//Triangle Invert Test
@@ -160,37 +160,37 @@ void EasyMesh::MeshCsg(CSGUsage csg_operation)
//TODO : This operation disconnect all triangle, in some cases, not a good thing.
if (csg_operation == CSGUsage::Xor)
{
for (ptrdiff_t l = 0; l < 3; l++)
for (int l = 0; l < 3; l++)
{
AddDupVertex(m_indices[tri_idx + l]);
m_indices[tri_idx + l] = (uint16_t)m_vert.Count() - 1;
m_indices[tri_idx + l] = (uint16_t)m_vert.count() - 1;
}
}
m_indices[tri_idx + 1] += m_indices[tri_idx + 2];
m_indices[tri_idx + 2] = m_indices[tri_idx + 1] - m_indices[tri_idx + 2];
m_indices[tri_idx + 1] = m_indices[tri_idx + 1] - m_indices[tri_idx + 2];
ComputeNormals((int)tri_idx, 3);
ComputeNormals(tri_idx, 3);
}
}
}
#endif
vert_list.Empty();
tri_list.Empty();
vert_list.empty();
tri_list.empty();
}
}

for (int i = 0; i < m_vert.Count(); i++)
for (int i = 0; i < m_vert.count(); i++)
if (length(m_vert[i].m_normal) < 1.0f)
i = i;

int dir = 1;
for (int i = 0; i >= 0 && i < triangle_to_kill.Count() - 1; i += dir)
for (int i = 0; i >= 0 && i < triangle_to_kill.count() - 1; i += dir)
{
if (triangle_to_kill[i] < triangle_to_kill[i + 1] && dir < 0)
dir = 1;
if (triangle_to_kill[i] == triangle_to_kill[i + 1])
{
triangle_to_kill.Remove(i);
triangle_to_kill.remove(i);
dir = -1;
}
if (triangle_to_kill[i] > triangle_to_kill[i + 1])
@@ -203,11 +203,11 @@ void EasyMesh::MeshCsg(CSGUsage csg_operation)
if (i == 0 && dir == -1)
dir = 1;
}
for (ptrdiff_t i = triangle_to_kill.Count() - 1; i >= 0; i--)
m_indices.Remove(triangle_to_kill[i], 3);
for (int i = triangle_to_kill.count() - 1; i >= 0; i--)
m_indices.remove(triangle_to_kill[i], 3);

m_cursors.Last().m1 = (int)m_vert.Count();
m_cursors.Last().m2 = (int)m_indices.Count();
m_cursors.last().m1 = m_vert.count();
m_cursors.last().m2 = m_indices.count();

VerticesCleanup();
//DONE for the splitting !


+ 10
- 10
src/easymesh/easymeshcursor.cpp View File

@@ -28,8 +28,8 @@ void EasyMesh::LoopStart(int loopnb)
else if (BD()->IsEnabled(MeshBuildOperation::CommandExecution))
{
//Only register if we're not the current loop command
if (!BD()->LoopStack().Count() || BD()->LoopStack().Last().m1 != BD()->Cmdi())
BD()->LoopStack().Push(BD()->Cmdi(), loopnb);
if (!BD()->LoopStack().count() || BD()->LoopStack().last().m1 != BD()->Cmdi())
BD()->LoopStack().push(BD()->Cmdi(), loopnb);
}
}

@@ -45,13 +45,13 @@ void EasyMesh::LoopEnd()
else if (BD()->IsEnabled(MeshBuildOperation::CommandExecution))
{
//Only register if we're not the current loop command
if (BD()->LoopStack().Count())
if (BD()->LoopStack().count())
{
BD()->LoopStack().Last().m2--;
if (BD()->LoopStack().Last().m2 > 0)
BD()->Cmdi() = BD()->LoopStack().Last().m1 - 1;
BD()->LoopStack().last().m2--;
if (BD()->LoopStack().last().m2 > 0)
BD()->Cmdi() = BD()->LoopStack().last().m1 - 1;
else
BD()->LoopStack().Pop();
BD()->LoopStack().pop();
}
}
}
@@ -65,7 +65,7 @@ void EasyMesh::OpenBrace()
return;
}

m_cursors.Push((int)m_vert.Count(), (int)m_indices.Count());
m_cursors.push(m_vert.count(), m_indices.count());
}

//-----------------------------------------------------------------------------
@@ -77,7 +77,7 @@ void EasyMesh::CloseBrace()
return;
}

m_cursors.Pop();
m_cursors.pop();
}

//-----------------------------------------------------------------------------
@@ -171,7 +171,7 @@ void EasyMesh::SetVertColor(vec4 const &color)
return;
}

for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++)
for (int i = m_cursors.last().m1; i < m_vert.count(); i++)
m_vert[i].m_color = color;
}



+ 48
- 47
src/easymesh/easymeshinternal.cpp View File

@@ -18,7 +18,7 @@ namespace lol
//-----------------------------------------------------------------------------
void EasyMesh::AddVertex(vec3 const &coord)
{
m_vert.Push(VertexData(coord, vec3(0.f, 1.f, 0.f), BD()->ColorA()));
m_vert.push(VertexData(coord, vec3(0.f, 1.f, 0.f), BD()->ColorA()));
m_state = MeshRender::NeedConvert;
}

@@ -33,7 +33,7 @@ void EasyMesh::AddDupVertex(int i)
void EasyMesh::AddLerpVertex(int i, int j, float alpha) { AddLerpVertex(m_vert[i], m_vert[j], alpha); }
void EasyMesh::AddLerpVertex(VertexData const &vi, VertexData const &vj, float alpha)
{
m_vert.Push(GetLerpVertex(vi, vj, alpha));
m_vert.push(GetLerpVertex(vi, vj, alpha));
m_state = MeshRender::NeedConvert;
}

@@ -55,7 +55,7 @@ void EasyMesh::AddQuad(int i1, int i2, int i3, int i4, int base, bool duplicate)
{
if (duplicate)
{
int vbase = (int)m_vert.Count();
int vbase = m_vert.count();
AddDupVertex(base + i1);
AddDupVertex(base + i2);
AddDupVertex(base + i3);
@@ -68,7 +68,7 @@ void EasyMesh::AddQuad(int i1, int i2, int i3, int i4, int base, bool duplicate)
if (BD()->IsEnabled(MeshBuildOperation::QuadWeighting) &&
!BD()->IsEnabled(MeshBuildOperation::IgnoreQuadWeighting))
{
int i5 = (int)m_vert.Count();
int i5 = m_vert.count();
AddLerpVertex(GetLerpVertex(base + i1, base + i3, .5f),
GetLerpVertex(base + i2, base + i4, .5f), .5f);
m_indices << i1 + base;
@@ -105,9 +105,9 @@ void EasyMesh::AddTriangle(int i1, int i2, int i3, int base, bool duplicate)
{
if (duplicate)
{
m_indices << (uint16_t)m_vert.Count(); AddDupVertex(base + i1);
m_indices << (uint16_t)m_vert.Count(); AddDupVertex(base + i2);
m_indices << (uint16_t)m_vert.Count(); AddDupVertex(base + i3);
m_indices << (uint16_t)m_vert.count(); AddDupVertex(base + i1);
m_indices << (uint16_t)m_vert.count(); AddDupVertex(base + i2);
m_indices << (uint16_t)m_vert.count(); AddDupVertex(base + i3);
}
else
{
@@ -126,7 +126,7 @@ void EasyMesh::ComputeNormals(int start, int vcount)
return;

array< array<vec3> > normals;
normals.Resize(m_vert.Count());
normals.resize(m_vert.count());
for (int i = 0; i < vcount; i += 3)
{
vec3 v0 = m_vert[m_indices[start + i + 2]].m_coord
@@ -139,20 +139,20 @@ void EasyMesh::ComputeNormals(int start, int vcount)
normals[m_indices[start + i + j]] << n;
}

for (int i = 0; i < normals.Count(); i++)
for (int i = 0; i < normals.count(); i++)
{
if (normals[i].Count() > 0)
if (normals[i].count() > 0)
{
//remove doubles
for (int j = 0; j < normals[i].Count(); ++j)
for (int k = j + 1; k < normals[i].Count(); ++k)
for (int j = 0; j < normals[i].count(); ++j)
for (int k = j + 1; k < normals[i].count(); ++k)
if (1.f - dot(normals[i][k], normals[i][j]) < .00001f)
normals[i].Remove(k--);
normals[i].remove(k--);

vec3 newv = vec3::zero;
for (int j = 0; j < normals[i].Count(); ++j)
for (int j = 0; j < normals[i].count(); ++j)
newv += normals[i][j];
m_vert[i].m_normal = normalize(newv / (float)normals[i].Count());
m_vert[i].m_normal = normalize(newv / (float)normals[i].count());
}
}
}
@@ -161,10 +161,10 @@ void EasyMesh::ComputeNormals(int start, int vcount)
void EasyMesh::VerticesCleanup()
{
array<int> vert_ids;
vert_ids.Resize(m_vert.Count(), 0);
vert_ids.resize(m_vert.count(), 0);

//1: Remove triangles with two vertices on each other
for (int i = 0; i < m_indices.Count(); i += 3)
for (int i = 0; i < m_indices.count(); i += 3)
{
bool remove = false;
for (int j = 0; !remove && j < 3; ++j)
@@ -172,7 +172,7 @@ void EasyMesh::VerticesCleanup()
remove = true;
if (remove)
{
m_indices.RemoveSwap(i, 3);
m_indices.remove_swap(i, 3);
i -= 3;
}
else
@@ -186,8 +186,8 @@ void EasyMesh::VerticesCleanup()
//2: Remove all unused vertices
array<VertexData> old_vert = m_vert;
int shift = 0;
m_vert.Empty();
for (int i = 0; i < vert_ids.Count(); ++i)
m_vert.empty();
for (int i = 0; i < vert_ids.count(); ++i)
{
//Unused vertex, update the shift quantity instead of keeping it.
if (vert_ids[i] == 0)
@@ -199,7 +199,7 @@ void EasyMesh::VerticesCleanup()
}

//3: Update the indices
for (int i = 0; i < m_indices.Count(); ++i)
for (int i = 0; i < m_indices.count(); ++i)
m_indices[i] -= vert_ids[m_indices[i]];
}

@@ -214,11 +214,11 @@ void EasyMesh::VerticesMerge()

//1: Crunch all vertices in the dictionnary
VertexDictionnary vert_dict;
for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++)
for (int i = m_cursors.last().m1; i < m_vert.count(); i++)
vert_dict.RegisterVertex(i, m_vert[i].m_coord);

//2: Update the indices
for (int i = 0; i < m_indices.Count(); ++i)
for (int i = 0; i < m_indices.count(); ++i)
{
int master = vert_dict.FindVertexMaster(m_indices[i]);
if (master >= 0)
@@ -240,33 +240,33 @@ void EasyMesh::VerticesSeparate()

array< array<int> > new_ids;
array<int> vert_ids;
vert_ids.Resize(m_vert.Count(), 0);
vert_ids.resize(m_vert.count(), 0);

//1: Mark all used vertices
for (int i = 0; i < m_indices.Count(); ++i)
for (int i = 0; i < m_indices.count(); ++i)
vert_ids[m_indices[i]]++;

//2: Update the vertices
int vbase = m_cursors.Last().m1;
int vcount = (int)m_vert.Count();
new_ids.Resize(vcount);
int vbase = m_cursors.last().m1;
int vcount = m_vert.count();
new_ids.resize(vcount);
for (int i = vbase; i < vcount; i++)
{
while (vert_ids[i] > 1)
{
//Add duplicate
new_ids[i] << (int)m_vert.Count();
new_ids[i] << m_vert.count();
AddDupVertex(i);
vert_ids[i]--;
}
}

//3: Update the indices
for (int i = 0; i < m_indices.Count(); ++i)
for (int i = 0; i < m_indices.count(); ++i)
{
if (new_ids[m_indices[i]].Count())
if (new_ids[m_indices[i]].count())
{
int j = new_ids[m_indices[i]].Pop();
int j = new_ids[m_indices[i]].pop();
m_indices[i] = j;
}
}
@@ -283,8 +283,8 @@ void EasyMesh::ComputeTexCoord(float uv_scale, int uv_offset)
VertexDictionnary vert_dict;
array<int> tri_list;

tri_list.Reserve(m_indices.Count() - m_cursors.Last().m2);
for (int i = m_cursors.Last().m2; i < m_indices.Count(); i++)
tri_list.Reserve(m_indices.count() - m_cursors.last().m2);
for (int i = m_cursors.last().m2; i < m_indices.count(); i++)
{
vert_dict.RegisterVertex(m_indices[i], m_vert[m_indices[i]].m_coord);
tri_list << m_indices[i];
@@ -293,11 +293,11 @@ void EasyMesh::ComputeTexCoord(float uv_scale, int uv_offset)
//full triangle count
array<int> tri_done;
array<int> tri_check;
int tri_count = (m_indices.Count() - m_cursors.Last().m2) / 3;
int tri_count = (m_indices.count() - m_cursors.last().m2) / 3;

tri_check << tri_list[0];

while (tri_check.Count())
while (tri_check.count())
{
int cur_tri = tri_check[0];
int v[3] = { tri_list[cur_tri + uv_offset % 3], tri_list[cur_tri + (1 + uv_offset) % 3], tri_list[cur_tri + (2 + uv_offset) % 3] };
@@ -396,7 +396,7 @@ void EasyMesh::ComputeTexCoord(float uv_scale, int uv_offset)
//Deactivation is a test.
matching_vert << v[i];
vert_dict.FindMatchingVertices(v[i], matching_vert);
for (int j = 0; j < matching_vert.Count(); j++)
for (int j = 0; j < matching_vert.count(); j++)
if (m_vert[matching_vert[j]].m_texcoord.xy == vec2(-1.0f))
m_vert[matching_vert[j]].m_texcoord = vec4(abs(uv[i]), m_vert[matching_vert[j]].m_texcoord.zw);
#else
@@ -405,7 +405,7 @@ void EasyMesh::ComputeTexCoord(float uv_scale, int uv_offset)
}

tri_done << cur_tri;
tri_check.Remove(0);
tri_check.remove(0);

//Get connected triangles and go from there.
for (int j = 0; j < 3; j++)
@@ -433,22 +433,22 @@ void EasyMesh::ComputeTexCoord(float uv_scale, int uv_offset)
//uv[2] = vec2(-1.0f);
/*
bool tri_present = false;
for (int j = 0; j < tri_done.Count(); j++)
for (int j = 0; j < tri_done.count(); j++)
if (cur_tri == tri_done[j])
tri_present = true;
if (!tri_present)
tri_done << cur_tri;
tri_check.Remove(0);
tri_check.remove(0);
*/
}

if (tri_check.Count() == 0 && tri_done.Count() != tri_count)
if (tri_check.count() == 0 && tri_done.count() != tri_count)
{
//look for unset triangle
for (int i = 0; !tri_check.Count() && i < tri_list.Count(); i += 3)
for (int i = 0; !tri_check.count() && i < tri_list.count(); i += 3)
{
bool tri_present = false;
for (int j = 0; j < tri_done.Count(); j++)
for (int j = 0; j < tri_done.count(); j++)
if (i == tri_done[j])
tri_present = true;
if (!tri_present)
@@ -476,25 +476,26 @@ void EasyMesh::SetTexCoordData2(vec2 const &new_offset, vec2 const &new_scale)
//-----------------------------------------------------------------------------
void EasyMesh::SetCurVertNormal(vec3 const &normal)
{
m_vert[m_vert.Count() - 1].m_normal = normal;
m_vert.last().m_normal = normal;
}

//-----------------------------------------------------------------------------
void EasyMesh::SetCurVertColor(vec4 const &color)
{
m_vert[m_vert.Count() - 1].m_color = color;
m_vert.last().m_color = color;
}

//-----------------------------------------------------------------------------
void EasyMesh::SetCurVertTexCoord(vec2 const &texcoord)
{
m_vert[m_vert.Count() - 1].m_texcoord = vec4(texcoord, m_vert[m_vert.Count() - 1].m_texcoord.zw);
m_vert.last().m_texcoord = vec4(texcoord, m_vert.last().m_texcoord.zw);
}

//-----------------------------------------------------------------------------
void EasyMesh::SetCurVertTexCoord2(vec2 const &texcoord)
{
m_vert[m_vert.Count() - 1].m_texcoord = vec4(m_vert[m_vert.Count() - 1].m_texcoord.xy, texcoord);
m_vert.last().m_texcoord = vec4(m_vert.last().m_texcoord.xy, texcoord);
}

} /* namespace lol */


+ 1
- 1
src/easymesh/easymeshlua.cpp View File

@@ -293,7 +293,7 @@ void EasyMesh::ExecuteCmdStack(bool ExecAllStack)
VerticesCleanup();

if (BD()->IsEnabled(MeshBuildOperation::PostBuildComputeNormals))
ComputeNormals(0, (int)m_indices.Count());
ComputeNormals(0, m_indices.count());

BD()->Disable(MeshBuildOperation::PostBuildComputeNormals);
BD()->Disable(MeshBuildOperation::PreventVertCleanup);


+ 26
- 26
src/easymesh/easymeshprimitive.cpp View File

@@ -36,7 +36,7 @@ void EasyMesh::AppendCylinder(int nsides, float h, float d1, float d2,
vec2 Save_texcoord_offset = BD()->TexCoordOffset();
vec2 Save_texcoord_scale = BD()->TexCoordScale();

int vbase = (int)m_vert.Count();
int vbase = m_vert.count();

mat3 rotmat = mat3::rotate(360.0f / (float)nsides, 0.f, 1.f, 0.f);
vec3 p1(r1, -h * .5f, 0.f), p2(r2, h * .5f, 0.f), n;
@@ -135,7 +135,7 @@ void EasyMesh::AppendCapsule(int ndivisions, float h, float d)
//XXX : This operation is done to convert radius to diameter without changing all the code.
float r = d * .5f;

int ibase = (int)m_indices.Count();
int ibase = m_indices.count();

array<vec3> vertices;
float uv_h = 0;
@@ -258,7 +258,7 @@ void EasyMesh::AppendCapsule(int ndivisions, float h, float d)
SetCurVertTexCoord(vec2(0.f, 1.f) - new_uv);
SetCurVertTexCoord2(vec2(0.f, 1.f) - new_uv);
}
AddTriangle(0, 2, 1, (int)m_vert.Count() - 3);
AddTriangle(0, 2, 1, m_vert.count() - 3);
}
}

@@ -272,7 +272,7 @@ void EasyMesh::AppendCapsule(int ndivisions, float h, float d)
}
}

ComputeNormals(ibase, (int)m_indices.Count() - ibase);
ComputeNormals(ibase, m_indices.count() - ibase);
}

//-----------------------------------------------------------------------------
@@ -289,7 +289,7 @@ void EasyMesh::AppendTorus(int ndivisions, float d1, float d2)
float r1 = d1 * .5f;
float r2 = d2 * .5f;

int ibase = (int)m_indices.Count();
int ibase = m_indices.count();
int nidiv = ndivisions; /* Cross-section */
int njdiv = ndivisions; /* Full circumference */

@@ -320,11 +320,11 @@ void EasyMesh::AppendTorus(int ndivisions, float d1, float d2)
SetCurVertTexCoord2(vec2((float)(i + di) / (float)nidiv, (float)(j + dj) / (float)nidiv));
}

AddTriangle(0, 2, 3, (int)m_vert.Count() - 4);
AddTriangle(0, 3, 1, (int)m_vert.Count() - 4);
AddTriangle(0, 2, 3, m_vert.count() - 4);
AddTriangle(0, 3, 1, m_vert.count() - 4);
}

ComputeNormals(ibase, (int)m_indices.Count() - ibase);
ComputeNormals(ibase, m_indices.count() - ibase);
}

//-----------------------------------------------------------------------------
@@ -361,8 +361,8 @@ void EasyMesh::AppendBox(vec3 const &size, float chamf, bool smooth)
return;
}

int vbase = (int)m_vert.Count();
int ibase = (int)m_indices.Count();
int vbase = m_vert.count();
int ibase = m_indices.count();

vec3 d = size * 0.5f;

@@ -486,8 +486,8 @@ void EasyMesh::AppendBox(vec3 const &size, float chamf, bool smooth)
SetCurVertTexCoord(BD()->TexCoord(mt, tl, mft));
SetCurVertTexCoord2(BD()->TexCoord2(mt, tr, mft));

ComputeNormals(ibase, (int)m_indices.Count() - ibase);
ibase = (int)m_indices.Count();
ComputeNormals(ibase, m_indices.count() - ibase);
ibase = m_indices.count();

//Build the box at the end : The 6 quads on each side of the box.
for (int i = 0; i < 24; i += 4)
@@ -521,7 +521,7 @@ void EasyMesh::AppendBox(vec3 const &size, float chamf, bool smooth)
}

if (!smooth)
ComputeNormals(ibase, (int)m_indices.Count() - ibase);
ComputeNormals(ibase, m_indices.count() - ibase);
}

//-----------------------------------------------------------------------------
@@ -543,7 +543,7 @@ void EasyMesh::AppendStar(int nbranches, float d1, float d2,
float r2 = d2 * .5f;

//TODO: It would probably be good to think of another way of UV painting this, like "branch repeating"
int vbase = (int)m_vert.Count();
int vbase = m_vert.count();
float maxr = max(r1, r2);

AddVertex(vec3(0.f, 0.f, 0.f)); SetCurVertTexCoord(vec2(.5f, .5f)); SetCurVertTexCoord2(vec2(.5f, .5f));
@@ -595,7 +595,7 @@ void EasyMesh::AppendExpandedStar(int nbranches, float d1, float d2, float extra
float r2 = d2 * .5f;
float extrar = extrad * .5f;

int vbase = (int)m_vert.Count();
int vbase = m_vert.count();
float maxr = lol::max(lol::max(r1, r2), lol::max(r1 + extrar, r2 + extrar));

AddVertex(vec3(0.f, 0.f, 0.f)); SetCurVertTexCoord(vec2(.5f, .5f)); SetCurVertTexCoord2(vec2(.5f, .5f));
@@ -648,7 +648,7 @@ void EasyMesh::AppendDisc(int nsides, float d, bool fade)
//XXX : This operation is done to convert radius to diameter without changing all the code.
float r = d * .5f;

int vbase = (int)m_vert.Count();
int vbase = m_vert.count();

AddVertex(vec3(0.f, 0.f, 0.f)); SetCurVertTexCoord(vec2(.5f, .5f)); SetCurVertTexCoord2(vec2(.5f, .5f));

@@ -693,7 +693,7 @@ void EasyMesh::AppendSimpleTriangle(float d, bool fade)
if (fade)
SetCurVertColor(BD()->ColorB());

AddTriangle(0, 1, 2, (int)m_vert.Count() - 3);
AddTriangle(0, 1, 2, m_vert.count() - 3);
}

//-----------------------------------------------------------------------------
@@ -738,8 +738,8 @@ void EasyMesh::AppendSimpleQuad(vec2 p1, vec2 p2, float z, bool fade)
SetCurVertTexCoord2(BD()->TexCoord2(mt, tr, mft));
if (fade) SetCurVertColor(BD()->ColorB());

AddQuad(0, 1, 2, 3, (int)m_vert.Count() - 4);
ComputeNormals((int)m_indices.Count() - 6, 6);
AddQuad(0, 1, 2, 3, m_vert.count() - 4);
ComputeNormals(m_indices.count() - 6, 6);
}

//-----------------------------------------------------------------------------
@@ -766,8 +766,8 @@ void EasyMesh::AppendCog(int nbsides, float h, float d10, float d20,
float r12 = d12 * .5f;
float r22 = d22 * .5f;

int ibase = (int)m_indices.Count();
int vbase = (int)m_vert.Count();
int ibase = m_indices.count();
int vbase = m_vert.count();

/* FIXME: enforce this some other way */
if (r12 < 0)
@@ -1011,13 +1011,13 @@ void EasyMesh::AppendCog(int nbsides, float h, float d10, float d20,
int l = -4;
while ((l += 4) < 48)
AddQuad(q[l + 0] + m[l + 0] * 3 + a[l + 0],
q[l + 1] + m[l + 1] * 3 + a[l + 1],
q[l + 2] + m[l + 2] * 3 + a[l + 2],
q[l + 3] + m[l + 3] * 3 + a[l + 3],
vbase);
q[l + 1] + m[l + 1] * 3 + a[l + 1],
q[l + 2] + m[l + 2] * 3 + a[l + 2],
q[l + 3] + m[l + 3] * 3 + a[l + 3],
vbase);
}

ComputeNormals(ibase, (int)m_indices.Count() - ibase);
ComputeNormals(ibase, m_indices.count() - ibase);
}

} /* namespace lol */

+ 45
- 45
src/easymesh/easymeshrender.cpp View File

@@ -30,9 +30,9 @@ void EasyMesh::MeshConvert()
Shader *shader = Shader::Create(LOLFX_RESOURCE_NAME(shiny));

/* Push index buffer to GPU */
IndexBuffer *ibo = new IndexBuffer(m_indices.Count() * sizeof(uint16_t));
IndexBuffer *ibo = new IndexBuffer(m_indices.count() * sizeof(uint16_t));
uint16_t *indices = (uint16_t *)ibo->Lock(0, 0);
for (int i = 0; i < m_indices.Count(); ++i)
for (int i = 0; i < m_indices.count(); ++i)
indices[i] = m_indices[i];
ibo->Unlock();

@@ -50,9 +50,9 @@ void EasyMesh::MeshConvert()
VertexUsage::Color,
VertexUsage::TexCoord));

VertexBuffer *vbo = new VertexBuffer(m_vert.Count() * sizeof(Vertex));
VertexBuffer *vbo = new VertexBuffer(m_vert.count() * sizeof(Vertex));
Vertex *vert = (Vertex *)vbo->Lock(0, 0);
for (int i = 0; i < m_vert.Count(); ++i)
for (int i = 0; i < m_vert.count(); ++i)
{
vert[i].pos = m_vert[i].m_coord,
vert[i].normal = m_vert[i].m_normal,
@@ -62,9 +62,9 @@ void EasyMesh::MeshConvert()
vbo->Unlock();

/* Reference our new data in our submesh */
m_submeshes.Push(new SubMesh(shader, vdecl));
m_submeshes.Last()->SetIndexBuffer(ibo);
m_submeshes.Last()->SetVertexBuffer(0, vbo);
m_submeshes.push(new SubMesh(shader, vdecl));
m_submeshes.last()->SetIndexBuffer(ibo);
m_submeshes.last()->SetVertexBuffer(0, vbo);

m_state = MeshRender::CanRender;
}
@@ -86,26 +86,26 @@ GpuShaderData::GpuShaderData(uint16_t vert_decl_flags, Shader* shader, DebugRend
//-----------------------------------------------------------------------------
GpuShaderData::~GpuShaderData()
{
m_shader_uniform.Empty();
m_shader_attrib.Empty();
m_shader_uniform.empty();
m_shader_attrib.empty();
}

//-----------------------------------------------------------------------------
void GpuShaderData::AddUniform(const lol::String &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.C()));
}

//-----------------------------------------------------------------------------
void GpuShaderData::AddAttribute(VertexUsage usage, int index)
{
m_shader_attrib.Push(m_shader->GetAttribLocation(usage, index));
m_shader_attrib.push(m_shader->GetAttribLocation(usage, index));
}

//-----------------------------------------------------------------------------
ShaderUniform const *GpuShaderData::GetUniform(const lol::String &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)
return &m_shader_uniform[i].m2;
return nullptr;
@@ -114,7 +114,7 @@ ShaderUniform const *GpuShaderData::GetUniform(const lol::String &uniform)
//-----------------------------------------------------------------------------
ShaderAttrib const *GpuShaderData::GetAttribute(VertexUsage usage, int index)
{
for (int i = 0; i < m_shader_attrib.Count(); ++i)
for (int i = 0; i < m_shader_attrib.count(); ++i)
if (m_shader_attrib[i].GetUsage() == usage && m_shader_attrib[i].GetIndex() == index)
return &m_shader_attrib[i];
return nullptr;
@@ -197,9 +197,9 @@ void DefaultShaderData::SetupShaderDatas(mat4 const &model)

/* FIXME: the 4th component of the position can be used for other things */
/* FIXME: GetUniform("blabla") is costly */
for (int i = 0; i < lights.Count(); ++i)
for (int i = 0; i < lights.count(); ++i)
light_data << vec4(lights[i]->GetPosition(), (float)lights[i]->GetType()) << lights[i]->GetColor();
while (light_data.Count() < LOL_MAX_LIGHT_COUNT)
while (light_data.count() < LOL_MAX_LIGHT_COUNT)
light_data << vec4::zero << vec4::zero;

int i = 0;
@@ -225,8 +225,8 @@ GpuEasyMeshData::GpuEasyMeshData()
//-----------------------------------------------------------------------------
GpuEasyMeshData::~GpuEasyMeshData()
{
m_gpudatas.Empty();
m_vdatas.Empty();
m_gpudatas.empty();
m_vdatas.empty();
if (m_ibo)
delete m_ibo;
}
@@ -263,27 +263,27 @@ void GpuEasyMeshData::AddGpuData(GpuShaderData* gpudata, EasyMesh* src_mesh)
if (!m_ibo)
{
array<uint16_t> indexlist;
for (int i = 0; i < src_mesh->m_indices.Count(); i += 3)
for (int i = 0; i < src_mesh->m_indices.count(); i += 3)
{
indexlist << src_mesh->m_indices[i + 0];
indexlist << src_mesh->m_indices[i + 1];
indexlist << src_mesh->m_indices[i + 2];
}

m_ibo = new IndexBuffer(indexlist.Bytes());
m_ibo = new IndexBuffer(indexlist.bytes());
void *indices = m_ibo->Lock(0, 0);
memcpy(indices, &indexlist[0], indexlist.Bytes());
memcpy(indices, &indexlist[0], indexlist.bytes());
m_ibo->Unlock();

m_indexcount = (int)indexlist.Count();
m_indexcount = indexlist.count();
}

//init to a minimum of gpudata->m_render_mode size
if (m_gpudatas.Count() <= gpudata->m_render_mode)
if (m_gpudatas.count() <= gpudata->m_render_mode)
{
int i = (int)m_gpudatas.Count();
int i = m_gpudatas.count();
int max = gpudata->m_render_mode + 1;
m_gpudatas.Reserve(max);
m_gpudatas.reserve(max);
for (; i < max; i++)
m_gpudatas << nullptr;
}
@@ -293,7 +293,7 @@ void GpuEasyMeshData::AddGpuData(GpuShaderData* gpudata, EasyMesh* src_mesh)
//-----------------------------------------------------------------------------
void GpuEasyMeshData::SetupVertexData(uint16_t vflags, EasyMesh* src_mesh)
{
for (int i = 0; i < m_vdatas.Count(); ++i)
for (int i = 0; i < m_vdatas.count(); ++i)
if (m_vdatas[i].m1 == vflags)
return;

@@ -304,8 +304,8 @@ void GpuEasyMeshData::SetupVertexData(uint16_t vflags, EasyMesh* src_mesh)

#define COPY_VBO \
vbo_data = &vertexlist[0]; \
vbo_bytes = (int)vertexlist.Bytes(); \
m_vertexcount = (int)vertexlist.Count(); \
vbo_bytes = vertexlist.bytes(); \
m_vertexcount = vertexlist.count(); \
new_vbo = new VertexBuffer(vbo_bytes); \
void *mesh = new_vbo->Lock(0, 0); \
memcpy(mesh, vbo_data, vbo_bytes); \
@@ -331,8 +331,8 @@ void GpuEasyMeshData::SetupVertexData(uint16_t vflags, EasyMesh* src_mesh)
VertexUsage::TexCoord));

array<vec3, vec3, u8vec4, vec4> vertexlist;
for (int i = 0; i < src_mesh->m_vert.Count(); i++)
vertexlist.Push(src_mesh->m_vert[i].m_coord,
for (int i = 0; i < src_mesh->m_vert.count(); i++)
vertexlist.push(src_mesh->m_vert[i].m_coord,
src_mesh->m_vert[i].m_normal,
(u8vec4)(src_mesh->m_vert[i].m_color * 255.f),
src_mesh->m_vert[i].m_texcoord);
@@ -348,8 +348,8 @@ void GpuEasyMeshData::SetupVertexData(uint16_t vflags, EasyMesh* src_mesh)
VertexUsage::TexCoord));

array<vec3, vec3, u8vec4, vec2> vertexlist;
for (int i = 0; i < src_mesh->m_vert.Count(); i++)
vertexlist.Push(src_mesh->m_vert[i].m_coord,
for (int i = 0; i < src_mesh->m_vert.count(); i++)
vertexlist.push(src_mesh->m_vert[i].m_coord,
src_mesh->m_vert[i].m_normal,
(u8vec4)(src_mesh->m_vert[i].m_color * 255.f),
src_mesh->m_vert[i].m_texcoord.xy);
@@ -360,8 +360,8 @@ void GpuEasyMeshData::SetupVertexData(uint16_t vflags, EasyMesh* src_mesh)
new_vdecl = new VertexDeclaration(VertexStream<vec3,vec4,vec4>(VertexUsage::Position, VertexUsage::Color, VertexUsage::TexCoord));

array<vec3, vec4, vec4> vertexlist;
for (int i = 0; i < src_mesh->m_vert.Count(); i++)
vertexlist.Push(src_mesh->m_vert[i].m_coord, src_mesh->m_vert[i].m_color, src_mesh->m_vert[i].m_texcoord);
for (int i = 0; i < src_mesh->m_vert.count(); i++)
vertexlist.push(src_mesh->m_vert[i].m_coord, src_mesh->m_vert[i].m_color, src_mesh->m_vert[i].m_texcoord);
COPY_VBO;
}
else if (flagnb == 3 && has_position && has_normal && has_color)
@@ -373,8 +373,8 @@ void GpuEasyMeshData::SetupVertexData(uint16_t vflags, EasyMesh* src_mesh)
VertexUsage::Color));

array<vec3,vec3,u8vec4> vertexlist;
for (int i = 0; i < src_mesh->m_vert.Count(); i++)
vertexlist.Push(src_mesh->m_vert[i].m_coord,
for (int i = 0; i < src_mesh->m_vert.count(); i++)
vertexlist.push(src_mesh->m_vert[i].m_coord,
src_mesh->m_vert[i].m_normal,
(u8vec4)(src_mesh->m_vert[i].m_color * 255.f));
COPY_VBO;
@@ -384,8 +384,8 @@ void GpuEasyMeshData::SetupVertexData(uint16_t vflags, EasyMesh* src_mesh)
new_vdecl = new VertexDeclaration(VertexStream<vec3,vec4>(VertexUsage::Position, VertexUsage::TexCoord));

array<vec3, vec4> vertexlist;
for (int i = 0; i < src_mesh->m_vert.Count(); i++)
vertexlist.Push(src_mesh->m_vert[i].m_coord, src_mesh->m_vert[i].m_texcoord);
for (int i = 0; i < src_mesh->m_vert.count(); i++)
vertexlist.push(src_mesh->m_vert[i].m_coord, src_mesh->m_vert[i].m_texcoord);
COPY_VBO;
}
else if (flagnb == 2 && has_position && has_texcoord)
@@ -393,8 +393,8 @@ void GpuEasyMeshData::SetupVertexData(uint16_t vflags, EasyMesh* src_mesh)
new_vdecl = new VertexDeclaration(VertexStream<vec3,vec2>(VertexUsage::Position, VertexUsage::TexCoord));

array<vec3, vec2> vertexlist;
for (int i = 0; i < src_mesh->m_vert.Count(); i++)
vertexlist.Push(src_mesh->m_vert[i].m_coord, src_mesh->m_vert[i].m_texcoord.xy);
for (int i = 0; i < src_mesh->m_vert.count(); i++)
vertexlist.push(src_mesh->m_vert[i].m_coord, src_mesh->m_vert[i].m_texcoord.xy);
COPY_VBO;
}
else if (flagnb == 2 && has_position && has_color)
@@ -402,29 +402,29 @@ void GpuEasyMeshData::SetupVertexData(uint16_t vflags, EasyMesh* src_mesh)
new_vdecl = new VertexDeclaration(VertexStream<vec3,u8vec4>(VertexUsage::Position, VertexUsage::Color));

array<vec3, u8vec4> vertexlist;
for (int i = 0; i < src_mesh->m_vert.Count(); i++)
vertexlist.Push(src_mesh->m_vert[i].m_coord, (u8vec4)(src_mesh->m_vert[i].m_color * 255.f));
for (int i = 0; i < src_mesh->m_vert.count(); i++)
vertexlist.push(src_mesh->m_vert[i].m_coord, (u8vec4)(src_mesh->m_vert[i].m_color * 255.f));
COPY_VBO;
}
else
ASSERT(0, "no Vertex Declaration combination for 0x%04x", vflags);

m_vdatas.Push(vflags, new_vdecl, new_vbo);
m_vdatas.push(vflags, new_vdecl, new_vbo);
}

//-----------------------------------------------------------------------------
void GpuEasyMeshData::RenderMeshData(mat4 const &model, int render_mode)
{
ASSERT(0 <= render_mode && render_mode < m_gpudatas.Count(), "render mode is not in the defined range");
ASSERT(0 <= render_mode && render_mode < m_gpudatas.count(), "render mode is not in the defined range");
ASSERT(m_gpudatas[render_mode], "gpu datas for this render mode don't exist");
GpuShaderData& gpu_sd = *(m_gpudatas[render_mode]);

int vdecl_idx = 0;
for (; vdecl_idx < m_vdatas.Count(); ++vdecl_idx)
for (; vdecl_idx < m_vdatas.count(); ++vdecl_idx)
if (m_vdatas[vdecl_idx].m1 == gpu_sd.m_vert_decl_flags)
break;

if (vdecl_idx >= m_vdatas.Count())
if (vdecl_idx >= m_vdatas.count())
return;

uint16_t vflags = m_vdatas[vdecl_idx].m1;


+ 1
- 1
src/easymesh/easymeshrender.h View File

@@ -119,7 +119,7 @@ public:
//---
void AddGpuData(GpuShaderData* gpudata, class EasyMesh* src_mesh);
void RenderMeshData(mat4 const &model, int render_mode=Video::GetDebugRenderMode());
bool HasData(int render_mode) { return (0 <= render_mode && render_mode < m_gpudatas.Count() && !!m_gpudatas[render_mode]); }
bool HasData(int render_mode) { return (0 <= render_mode && render_mode < m_gpudatas.count() && !!m_gpudatas[render_mode]); }

private:
void SetupVertexData(uint16_t vdecl_flags, EasyMesh* src_mesh);


+ 50
- 53
src/easymesh/easymeshtransform.cpp View File

@@ -30,7 +30,7 @@ void EasyMesh::Translate(vec3 const &v)
return;
}

for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++)
for (int i = m_cursors.last().m1; i < m_vert.count(); i++)
m_vert[i].m_coord += v;
}

@@ -50,7 +50,7 @@ void EasyMesh::Rotate(float angle, vec3 const &axis)
}

mat3 m = mat3::rotate(angle, axis);
for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++)
for (int i = m_cursors.last().m1; i < m_vert.count(); i++)
{
m_vert[i].m_coord = m * m_vert[i].m_coord;
m_vert[i].m_normal = m * m_vert[i].m_normal;
@@ -67,14 +67,14 @@ void EasyMesh::RadialJitter(float r)
return;
}

array<int> Welded;
Welded.Push(-1);
for (int i = m_cursors.Last().m1 + 1; i < m_vert.Count(); i++)
array<int> welded;
welded.push(-1);
for (int i = m_cursors.last().m1 + 1; i < m_vert.count(); i++)
{
int j, k;
for (j = m_cursors.Last().m1, k = 0; j < i; j++, k++)
for (j = m_cursors.last().m1, k = 0; j < i; j++, k++)
{
if(Welded[k] < 0)
if(welded[k] < 0)
{
vec3 diff = m_vert[i].m_coord - m_vert[j].m_coord;

@@ -91,22 +91,19 @@ void EasyMesh::RadialJitter(float r)
}
}

if(j == i)
Welded.Push(-1);
else
Welded.Push(j);
welded.push(j != i ? j : -1);
}

int i, j;
for (i = m_cursors.Last().m1, j = 0; i < m_vert.Count(); i++, j++)
for (i = m_cursors.last().m1, j = 0; i < m_vert.count(); i++, j++)
{
if(Welded[j] == -1)
if(welded[j] == -1)
m_vert[i].m_coord *= 1.0f + rand(r);
else
m_vert[i].m_coord = m_vert[Welded[j]].m_coord;
m_vert[i].m_coord = m_vert[welded[j]].m_coord;
}

ComputeNormals(m_cursors.Last().m2, (int)m_indices.Count() - m_cursors.Last().m2);
ComputeNormals(m_cursors.last().m2, m_indices.count() - m_cursors.last().m2);
}

//-----------------------------------------------------------------------------
@@ -147,7 +144,7 @@ void EasyMesh::DoMeshTransform(MeshTransform ct, Axis axis0, Axis axis1, float n
return;
}

for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++)
for (int i = m_cursors.last().m1; i < m_vert.count(); i++)
{
switch (ct.ToScalar())
{
@@ -188,7 +185,7 @@ void EasyMesh::DoMeshTransform(MeshTransform ct, Axis axis0, Axis axis1, float n
}
}
}
ComputeNormals(m_cursors.Last().m2, (int)m_indices.Count() - m_cursors.Last().m2);
ComputeNormals(m_cursors.last().m2, m_indices.count() - m_cursors.last().m2);
}

//-----------------------------------------------------------------------------
@@ -207,7 +204,7 @@ void EasyMesh::Scale(vec3 const &s)

vec3 const invs = vec3(1) / s;

for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++)
for (int i = m_cursors.last().m1; i < m_vert.count(); i++)
{
m_vert[i].m_coord *= s;
m_vert[i].m_normal = normalize(m_vert[i].m_normal * invs);
@@ -216,7 +213,7 @@ void EasyMesh::Scale(vec3 const &s)
/* Flip winding if the scaling involves mirroring */
if (!BD()->IsEnabled(MeshBuildOperation::ScaleWinding) && s.x * s.y * s.z < 0)
{
for (int i = m_cursors.Last().m2; i < m_indices.Count(); i += 3)
for (int i = m_cursors.last().m2; i < m_indices.count(); i += 3)
{
uint16_t tmp = m_indices[i + 0];
m_indices[i + 0] = m_indices[i + 1];
@@ -240,26 +237,26 @@ void EasyMesh::DupAndScale(vec3 const &s, bool open_brace)
return;
}

int vlen = (int)m_vert.Count() - m_cursors.Last().m1;
int tlen = (int)m_indices.Count() - m_cursors.Last().m2;
int vlen = m_vert.count() - m_cursors.last().m1;
int tlen = m_indices.count() - m_cursors.last().m2;

for (int i = 0; i < vlen; i++)
AddDupVertex(m_cursors.Last().m1++);
AddDupVertex(m_cursors.last().m1++);

for (int i = 0; i < tlen; i++)
m_indices << m_indices[m_cursors.Last().m2++] + vlen;
m_indices << m_indices[m_cursors.last().m2++] + vlen;

Scale(s);

m_cursors.Last().m1 -= vlen;
m_cursors.Last().m2 -= tlen;
m_cursors.last().m1 -= vlen;
m_cursors.last().m2 -= tlen;

if (open_brace)
{
OpenBrace();

m_cursors.Last().m1 -= vlen;
m_cursors.Last().m2 -= tlen;
m_cursors.last().m1 -= vlen;
m_cursors.last().m2 -= tlen;
}
}

@@ -273,8 +270,8 @@ void EasyMesh::Chamfer(float f)
return;
}

int vlen = (int)m_vert.Count() - m_cursors.Last().m1;
int ilen = (int)m_indices.Count() - m_cursors.Last().m2;
int vlen = m_vert.count() - m_cursors.last().m1;
int ilen = m_indices.count() - m_cursors.last().m2;

/* Step 1: enumerate all faces. This is done by merging triangles
* that are coplanar and share an edge. */
@@ -334,10 +331,10 @@ void EasyMesh::SplitTriangles(int pass, VertexDictionnary *vert_dict)
{
while (pass--)
{
int trimax = (int)m_indices.Count();
for (int i = m_cursors.Last().m2; i < trimax; i += 3)
int trimax = m_indices.count();
for (int i = m_cursors.last().m2; i < trimax; i += 3)
{
int vbase = (int)m_vert.Count();
int vbase = m_vert.count();
int j = -1;
while (++j < 3)
{
@@ -354,7 +351,7 @@ void EasyMesh::SplitTriangles(int pass, VertexDictionnary *vert_dict)
m_indices[i + 2] = vbase + 2;
}
}
ComputeNormals(m_cursors.Last().m2, (int)m_indices.Count() - m_cursors.Last().m2);
ComputeNormals(m_cursors.last().m2, m_indices.count() - m_cursors.last().m2);
}

//-----------------------------------------------------------------------------
@@ -376,7 +373,7 @@ void EasyMesh::SmoothMesh(int main_pass, int split_per_main_pass, int smooth_per
array<int> connected_vert;
int smbuf = 0;

for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++)
for (int i = m_cursors.last().m1; i < m_vert.count(); i++)
vert_dict.RegisterVertex(i, m_vert[i].m_coord);

while (main_pass--)
@@ -386,53 +383,53 @@ void EasyMesh::SmoothMesh(int main_pass, int split_per_main_pass, int smooth_per

SplitTriangles(split_pass, &vert_dict);

matching_ids.Reserve(m_vert.Count() - m_cursors.Last().m1);
connected_vert.Reserve(m_vert.Count() - m_cursors.Last().m1);
smooth_buf[0].Resize(m_vert.Count() - m_cursors.Last().m1);
smooth_buf[1].Resize(m_vert.Count() - m_cursors.Last().m1);
matching_ids.reserve(m_vert.count() - m_cursors.last().m1);
connected_vert.reserve(m_vert.count() - m_cursors.last().m1);
smooth_buf[0].resize(m_vert.count() - m_cursors.last().m1);
smooth_buf[1].resize(m_vert.count() - m_cursors.last().m1);

for (int i = m_cursors.Last().m1; i < m_vert.Count(); i++)
smooth_buf[smbuf][i - m_cursors.Last().m1] = m_vert[i].m_coord;
for (int i = m_cursors.last().m1; i < m_vert.count(); i++)
smooth_buf[smbuf][i - m_cursors.last().m1] = m_vert[i].m_coord;

while (smooth_pass--)
{
master_list.Empty();
master_list.empty();
if (vert_dict.GetMasterList(master_list))
{
for (int i = 0; i < master_list.Count(); i++)
for (int i = 0; i < master_list.count(); i++)
{
connected_vert.Empty();
if (vert_dict.FindConnectedVertices(master_list[i], m_indices, m_cursors.Last().m2, connected_vert))
connected_vert.empty();
if (vert_dict.FindConnectedVertices(master_list[i], m_indices, m_cursors.last().m2, connected_vert))
{
//Calculate vertices sum
vec3 vert_sum = vec3(.0f);
for (int j = 0; j < connected_vert.Count(); j++)
vert_sum += smooth_buf[smbuf][connected_vert[j] - m_cursors.Last().m1];
for (int j = 0; j < connected_vert.count(); j++)
vert_sum += smooth_buf[smbuf][connected_vert[j] - m_cursors.last().m1];

//Calculate new master vertex
float n = (float)connected_vert.Count();
float n = (float)connected_vert.count();
//b(n) = 5/4 - pow(3 + 2 * cos(2.f * F_PI / n), 2) / 32
float beta = 3.f + 2.f * cos(2.f * F_PI / n);
beta = 5.f / 4.f - beta * beta / 32.f;
//a(n) = n * (1 - b(n)) / b(n)
float alpha = (n * (1 - beta)) / beta;
//V = (a(n) * v + v1 + ... + vn) / (a(n) + n)
vec3 new_vert = (alpha * smooth_buf[smbuf][master_list[i] - m_cursors.Last().m1] + vert_sum) / (alpha + n);
vec3 new_vert = (alpha * smooth_buf[smbuf][master_list[i] - m_cursors.last().m1] + vert_sum) / (alpha + n);

//Set all matching vertices to new value
matching_ids.Empty();
matching_ids.empty();
matching_ids << master_list[i];
vert_dict.FindMatchingVertices(master_list[i], matching_ids);
for (int j = 0; j < matching_ids.Count(); j++)
smooth_buf[1 - smbuf][matching_ids[j] - m_cursors.Last().m1] = new_vert;
for (int j = 0; j < matching_ids.count(); j++)
smooth_buf[1 - smbuf][matching_ids[j] - m_cursors.last().m1] = new_vert;
}
}
}
smbuf = 1 - smbuf;
}

for (int i = 0; i < smooth_buf[smbuf].Count(); i++)
m_vert[i + m_cursors.Last().m1].m_coord = smooth_buf[smbuf][i];
for (int i = 0; i < smooth_buf[smbuf].count(); i++)
m_vert[i + m_cursors.last().m1].m_coord = smooth_buf[smbuf][i];
}
}



+ 5
- 2
src/gpu/renderer.cpp View File

@@ -234,14 +234,17 @@ void Renderer::AddNew(ivec2 size)
{
g_renderers << new Renderer(size);
}
ptrdiff_t Renderer::GetCount()

int Renderer::GetCount()
{
return g_renderers.count();
}
Renderer* Renderer::Get(ptrdiff_t index)

Renderer* Renderer::Get(int index)
{
return g_renderers[index];
}

void Renderer::DestroyAll()
{
for (Renderer* renderer : g_renderers)


+ 31
- 31
src/gpu/shader.cpp View File

@@ -404,8 +404,8 @@ Shader::Shader(String const &name,
VertexUsage usage = VertexUsage::MAX;
for (int j = 0; j < (int)VertexUsage::MAX; ++j)
{
if (name.StartsWith(attribute_names[j]) ||
name.StartsWith(String(attribute_names[j]).ToLower()))
if (name.starts_with(attribute_names[j]) ||
name.starts_with(String(attribute_names[j]).to_lower()))
{
usage = VertexUsage(j);
char* idx_ptr = name.C() + strlen(attribute_names[j]);
@@ -442,7 +442,7 @@ Shader::Shader(String const &name,

int Shader::GetAttribCount() const
{
return (int)data->attrib_locations.count();
return data->attrib_locations.count();
}

ShaderAttrib Shader::GetAttribLocation(VertexUsage usage, int index) const
@@ -657,12 +657,12 @@ void Shader::SetUniform(ShaderUniform const &uni, array<float> const &v)
* it's a bunch of floats instead of vec4. */
if (uni.flags & 1)
data->m_dev->SetPixelShaderConstantF((UINT)uni.frag,
&v[0], v.Count() / 4);
&v[0], v.count() / 4);
if (uni.flags & 2)
data->m_dev->SetVertexShaderConstantF((UINT)uni.vert,
&v[0], v.Count() / 4);
&v[0], v.count() / 4);
#else
glUniform1fv((GLint)uni.frag, (GLsizei)v.Count(), &v[0]);
glUniform1fv((GLint)uni.frag, (GLsizei)v.count(), &v[0]);
#endif
}

@@ -673,12 +673,12 @@ void Shader::SetUniform(ShaderUniform const &uni, array<vec2> const &v)
* it's a bunch of vec2 instead of vec4. */
if (uni.flags & 1)
data->m_dev->SetPixelShaderConstantF((UINT)uni.frag,
&v[0][0], v.Count() / 2);
&v[0][0], v.count() / 2);
if (uni.flags & 2)
data->m_dev->SetVertexShaderConstantF((UINT)uni.vert,
&v[0][0], v.Count() / 2);
&v[0][0], v.count() / 2);
#else
glUniform2fv((GLint)uni.frag, (GLsizei)v.Count(), &v[0][0]);
glUniform2fv((GLint)uni.frag, (GLsizei)v.count(), &v[0][0]);
#endif
}

@@ -689,12 +689,12 @@ void Shader::SetUniform(ShaderUniform const &uni, array<vec3> const &v)
* it's a bunch of vec3 instead of vec4. */
if (uni.flags & 1)
data->m_dev->SetPixelShaderConstantF((UINT)uni.frag,
&v[0][0], v.Count());
&v[0][0], v.count());
if (uni.flags & 2)
data->m_dev->SetVertexShaderConstantF((UINT)uni.vert,
&v[0][0], v.Count());
&v[0][0], v.count());
#else
glUniform3fv((GLint)uni.frag, (GLsizei)v.Count(), &v[0][0]);
glUniform3fv((GLint)uni.frag, (GLsizei)v.count(), &v[0][0]);
#endif
}

@@ -703,12 +703,12 @@ void Shader::SetUniform(ShaderUniform const &uni, array<vec4> const &v)
#if defined USE_D3D9 || defined _XBOX
if (uni.flags & 1)
data->m_dev->SetPixelShaderConstantF((UINT)uni.frag,
&v[0][0], v.Count());
&v[0][0], v.count());
if (uni.flags & 2)
data->m_dev->SetVertexShaderConstantF((UINT)uni.vert,
&v[0][0], v.Count());
&v[0][0], v.count());
#else
glUniform4fv((GLint)uni.frag, (GLsizei)v.Count(), &v[0][0]);
glUniform4fv((GLint)uni.frag, (GLsizei)v.count(), &v[0][0]);
#endif
}

@@ -838,7 +838,7 @@ String ShaderData::Patch(String const &code, ShaderType type)

if (ver_shader > 120 && ver_driver <= 120)
{
char const *end = patched_code.C() + patched_code.Count() + 1;
char const *end = patched_code.C() + patched_code.count() + 1;

/* Find main() */
parser = strstr(patched_code.C(), "main");
@@ -932,7 +932,7 @@ String ShaderData::Patch(String const &code, ShaderType type)
}
}

patched_code.Resize(strlen(patched_code.C()));
patched_code.resize(strlen(patched_code.C()));

return patched_code;
}
@@ -1074,7 +1074,7 @@ void ShaderBlock::AddCallParameters(map<String, String> const& variables, String
array<String> keys = variables.keys();
for (String key : keys)
{
if (result.Count() > 0)
if (result.count() > 0)
result += ", ";
result += key;
}
@@ -1086,7 +1086,7 @@ void ShaderBlock::AddDefinitionParameters(const ShaderVariable type, const Shade
array<String> keys = variables.keys();
for (String key : keys)
{
if (result.Count() > 0)
if (result.count() > 0)
result += ", ";
result += Shader::GetFunctionQualifier(type, program) + " ";
result += variables[key];
@@ -1098,7 +1098,7 @@ void ShaderBlock::AddDefinitionParameters(const ShaderVariable type, const Shade
//----
void ShaderBlock::Build(const ShaderProgram program, String& call, String& function)
{
ASSERT(m_name.Count());
ASSERT(m_name.count());
ASSERT(m_parameters[ShaderVariable::InOut].count());

//Build call in main
@@ -1116,7 +1116,7 @@ void ShaderBlock::Build(const ShaderProgram program, String& call, String& funct
AddDefinitionParameters((ShaderVariable)i, program, m_parameters[i], def_parameters);
function += def_parameters + ")" + g_ret +
"{" + g_ret +
m_code_main + ((m_code_main.EndsWith(g_ret)) ? (String()) : (g_ret)) +
m_code_main + ((m_code_main.ends_with(g_ret)) ? (String()) : (g_ret)) +
"}";
}

@@ -1124,8 +1124,8 @@ void ShaderBlock::Build(const ShaderProgram program, String& call, String& funct
ShaderBuilder::ShaderBuilder(String const& name, String const& version)
: m_name(name), m_version(version)
{
ASSERT(name.Count());
ASSERT(version.Count());
ASSERT(name.count());
ASSERT(version.count());
}

//----
@@ -1150,7 +1150,7 @@ ShaderBuilder& ShaderBuilder::operator<<(const ShaderProgram program)
ShaderBuilder& ShaderBuilder::operator<<(ShaderBlock* block)
{
ASSERT(m_current_program != ShaderProgram::MAX);
m_blocks[m_current_program.ToScalar()].PushUnique(block);
m_blocks[m_current_program.ToScalar()].push_unique(block);
return *this;
}

@@ -1158,7 +1158,7 @@ ShaderBuilder& ShaderBuilder::operator<<(ShaderBlock* block)
ShaderBuilder& ShaderBuilder::operator<<(ShaderBlock const& block)
{
ASSERT(m_current_program != ShaderProgram::MAX);
m_blocks[m_current_program.ToScalar()].PushUnique(new ShaderBlock(block));
m_blocks[m_current_program.ToScalar()].push_unique(new ShaderBlock(block));
return *this;
}

@@ -1225,12 +1225,12 @@ void ShaderBuilder::Build(String& code)
//Add default local out in merged variables
String out_local_var = AddSlotOutVariableLocal((ShaderProgram)prog);

if (!out_local_var.Count())
if (!out_local_var.count())
continue;

//Merge all variables
for (int var = 0; var < ShaderVariable::MAX; var++)
for (int block = 0; block < m_blocks[prog].Count(); block++)
for (int block = 0; block < m_blocks[prog].count(); block++)
MergeParameters(m_blocks[prog][block]->m_parameters[var], m_parameters[prog][var]);

//Actually write code
@@ -1243,7 +1243,7 @@ void ShaderBuilder::Build(String& code)
for (int var = 0; var < ShaderVariable::InOut; var++)
{
array<String> keys = m_parameters[prog][var].keys();
if (keys.Count())
if (keys.count())
{
code += String("//- ") + Shader::GetVariableQualifier((ShaderVariable)var) + " ----" + g_ret;
for (String key : keys)
@@ -1259,13 +1259,13 @@ void ShaderBuilder::Build(String& code)

//Build Blocks code and add it
array<String> calls;
for (int block = 0; block < m_blocks[prog].Count(); block++)
for (int block = 0; block < m_blocks[prog].count(); block++)
{
String call;
String function;
m_blocks[prog][block]->Build(ShaderProgram(prog), call, function);
calls << call;
if (m_blocks[prog][block]->m_code_custom.Count())
if (m_blocks[prog][block]->m_code_custom.count())
{
code += String("//- ") + m_blocks[prog][block]->GetName() + " custom code ----" + g_ret;
code += m_blocks[prog][block]->m_code_custom + g_ret + g_ret;
@@ -1283,7 +1283,7 @@ void ShaderBuilder::Build(String& code)
array<String> keys = m_parameters[prog][var].keys();
for (String key : keys)
{
if (keys.Count())
if (keys.count())
{
code += g_tab + m_parameters[prog][var][key] + " " + key + ";" + g_ret;
}


+ 2
- 3
src/image/codec/imlib2-image.cpp View File

@@ -43,10 +43,9 @@ bool Imlib2ImageCodec::Load(Image *image, char const *path)
{
Imlib_Image im = nullptr;

array<String> pathlist = System::GetPathList(path);
for (int i = 0; i < pathlist.Count(); i++)
for (auto candidate : System::GetPathList(path))
{
im = imlib_load_image(pathlist[i].C());
im = imlib_load_image(candidate.C());
if (im)
break;
}


+ 8
- 8
src/image/codec/oric-image.cpp View File

@@ -60,10 +60,10 @@ bool OricImageCodec::Load(Image *image, char const *path)
};

String screen = ReadScreen(path);
if (screen.Count() == 0)
if (screen.count() == 0)
return false;

image->SetSize(ivec2(WIDTH, screen.Count() * 6 / WIDTH));
image->SetSize(ivec2(WIDTH, screen.count() * 6 / WIDTH));

u8vec4 *pixels = image->Lock<PixelFormat::RGBA_8>();

@@ -162,17 +162,17 @@ String OricImageCodec::ReadScreen(char const *name)
++header;

/* Skip the header, ignoring the last byte’s value */
if (data.Sub(header, 8) != String("\x00\xff\x80\x00\xbf\x3f\xa0\x00", 8))
if (data.sub(header, 8) != String("\x00\xff\x80\x00\xbf\x3f\xa0\x00", 8))
return "";

/* Skip the file name, including trailing nul char */
data = data.Sub(header + 8);
int filename_end = data.IndexOf('\0');
data = data.sub(header + 8);
int filename_end = data.index_of('\0');
if (filename_end < 0)
return "";

/* Read screen data */
return data.Sub(filename_end + 1);
return data.sub(filename_end + 1);
}

/* Error diffusion table, similar to Floyd-Steinberg. I choose not to
@@ -471,8 +471,8 @@ void OricImageCodec::WriteScreen(Image &image, array<uint8_t> &result)
int stride = (size.x + 1);

array2d<ivec3> src, dst;
src.SetSize(size + ivec2(1));
dst.SetSize(size + ivec2(1));
src.resize(size + ivec2(1));
dst.resize(size + ivec2(1));

memset(src.data(), 0, src.bytes());
memset(dst.data(), 0, dst.bytes());


+ 2
- 3
src/image/codec/sdl-image.cpp View File

@@ -48,10 +48,9 @@ bool SdlImageCodec::Load(Image *image, char const *path)
{
SDL_Surface *surface = nullptr;

array<String> pathlist = System::GetPathList(path);
for (int i = 0; i < pathlist.Count(); i++)
for (auto candidate : System::GetPathList(path))
{
surface = IMG_Load(pathlist[i].C());
surface = IMG_Load(candidate.C());
if (surface)
break;
}


+ 32
- 32
src/image/codec/zed-image.cpp View File

@@ -29,9 +29,9 @@ public:

virtual bool RetrieveTiles(array<ivec2, ivec2>& tiles)
{
bool result = m_tiles.Count() > 0;
bool result = m_tiles.count() > 0;
tiles += m_tiles;
m_tiles.Empty();
m_tiles.empty();
return result;
}

@@ -48,7 +48,7 @@ DECLARE_IMAGE_CODEC(ZedImageCodec, 10)

bool ZedImageCodec::Load(Image *image, char const *path)
{
if (!lol::String(path).EndsWith(".RSC"))
if (!lol::String(path).ends_with(".RSC"))
return false;

// Compacter definition
@@ -73,7 +73,7 @@ bool ZedImageCodec::Load(Image *image, char const *path)
{
m_primary << CompactMain(start << i);
for (int j = 0; j < count; j++)
m_primary.Last().m_secondary << CompactSecondary(start << j);
m_primary.last().m_secondary << CompactSecondary(start << j);
}
}
void StepSetup(int32_t start, int32_t interval, int32_t count)
@@ -82,27 +82,27 @@ bool ZedImageCodec::Load(Image *image, char const *path)
{
m_primary << CompactMain(start + interval * i);
for (int j = 0; j < count; j++)
m_primary.Last().m_secondary << CompactSecondary(start + interval * j);
m_primary.last().m_secondary << CompactSecondary(start + interval * j);
}
}
void CustomSetup(array<int32_t> custom_list)
{
for (int i = 0; i < custom_list.Count(); i++)
for (int i = 0; i < custom_list.count(); i++)
{
m_primary << CompactMain(custom_list[i]);
for (int j = 0; j < custom_list.Count(); j++)
m_primary.Last().m_secondary << CompactSecondary(custom_list[j]);
for (int j = 0; j < custom_list.count(); j++)
m_primary.last().m_secondary << CompactSecondary(custom_list[j]);
}
}
void Store(int32_t tile, ivec2 size)
{
for (int i = 0; i < m_primary.Count(); i++)
for (int i = 0; i < m_primary.count(); i++)
{
if (size.y <= m_primary[i].m_size || i == m_primary.Count() - 1)
if (size.y <= m_primary[i].m_size || i == m_primary.count() - 1)
{
for (int j = 0; j < m_primary[i].m_secondary.Count(); j++)
for (int j = 0; j < m_primary[i].m_secondary.count(); j++)
{
if (size.x <= m_primary[i].m_secondary[j].m_size || j == m_primary[i].m_secondary.Count() - 1)
if (size.x <= m_primary[i].m_secondary[j].m_size || j == m_primary[i].m_secondary.count() - 1)
{
m_primary[i].m_secondary[j].m_tiles << tile;
m_primary[i].m_count++;
@@ -122,7 +122,7 @@ bool ZedImageCodec::Load(Image *image, char const *path)
//Put file in memory
long file_size = file.GetSize();
array<uint8_t> file_buffer;
file_buffer.Resize(file_size);
file_buffer.resize(file_size);
file.Read((uint8_t*)&file_buffer[0], file_size);
file.Close();

@@ -132,24 +132,24 @@ bool ZedImageCodec::Load(Image *image, char const *path)
file_count = *((uint16_t*)(&file_buffer[file_pos]));
file_pos += sizeof(uint16_t);

array<long int> file_offset;
file_offset.Resize(file_count);
array<uint32_t> file_offset;
file_offset.resize(file_count);
//Get all the file offsets
for (int i = 0; i < file_count; i++)
{
file_offset[i] = *((long int*)(&file_buffer[file_pos]));
file_pos += sizeof(long int);
file_offset[i] = *((uint32_t*)(&file_buffer[file_pos]));
file_pos += sizeof(uint32_t);
}
file_offset << file_size;

m_tiles.Reserve(file_count);
m_tiles.reserve(file_count);

Compacter2d compacter;
compacter.StepSetup(8, 8, 10);

uint32_t total_size = 0;
array<uint8_t> file_convert;
file_convert.Reserve(file_size);
file_convert.reserve(file_size);
array<ivec2> available_sizes;
for (int i = 0; i < file_count; i++)
{
@@ -173,23 +173,23 @@ bool ZedImageCodec::Load(Image *image, char const *path)
/* Seems useless in the end
//Retrieve Header & footer
array<uint8_t> header_data;
header_data.Resize(header_length);
header_data.resize(header_length);
memcpy(&header_data[0], &file_buffer[file_offset[i]], header_length);
array<uint8_t> footer_data;
uint32_t footer_length = lol::min((uint32_t)file_buffer.Count(), data_pos + data_length + header_length) - (data_pos + data_length);
uint32_t footer_length = lol::min((uint32_t)file_buffer.count(), data_pos + data_length + header_length) - (data_pos + data_length);
if (footer_length > 0)
{
footer_data.Resize(footer_length);
footer_data.resize(footer_length);
memcpy(&footer_data[0], &file_buffer[data_pos + data_length], footer_length);
}
*/

//Prepare buffer and tiles infos
int32_t convert_pos = file_convert.Count();
int32_t convert_pos = file_convert.count();
ivec2 size = ivec2(size_x, size_y);
compacter.Store(m_tiles.Count(), ivec2(size_x, size_y));
m_tiles.Push(ivec2(file_convert.Count(), data_length), ivec2(size_x, size_y));
file_convert.Resize(convert_pos + data_length);
compacter.Store(m_tiles.count(), ivec2(size_x, size_y));
m_tiles.push(ivec2(file_convert.count(), data_length), ivec2(size_x, size_y));
file_convert.resize(convert_pos + data_length);

//Retrieve actual datas
file_pos = data_pos;
@@ -220,10 +220,10 @@ bool ZedImageCodec::Load(Image *image, char const *path)
s_16 <<= 1;
}
int j = 0;
for (; j < available_sizes.Count(); j++)
for (; j < available_sizes.count(); j++)
if (available_sizes[j] == size_16)
break;
if (j >= available_sizes.Count())
if (j >= available_sizes.count())
available_sizes << size_16;
}
}
@@ -239,22 +239,22 @@ bool ZedImageCodec::Load(Image *image, char const *path)

//Data refactor stage
ivec2 pos = ivec2(0);
for (int j = compacter.m_primary.Count() - 1; j >= 0; j--)
for (int j = compacter.m_primary.count() - 1; j >= 0; j--)
{
for (int k = compacter.m_primary[j].m_secondary.Count() - 1; k >= 0; k--)
for (int k = compacter.m_primary[j].m_secondary.count() - 1; k >= 0; k--)
{
//Try something smaller
if (pos.x + compacter.m_primary[j].m_secondary[k].m_size >= tex_size)
continue;

while (compacter.m_primary[j].m_secondary[k].m_tiles.Count() > 0)
while (compacter.m_primary[j].m_secondary[k].m_tiles.count() > 0)
{
//Try something smaller
if (pos.x + compacter.m_primary[j].m_secondary[k].m_size >= tex_size)
break;

compacter.m_primary[j].m_count--;
int i = compacter.m_primary[j].m_secondary[k].m_tiles.Pop();
int i = compacter.m_primary[j].m_secondary[k].m_tiles.pop();
int32_t file_off = m_tiles[i].m1[0];
ivec2 t_size = m_tiles[i].m2;



+ 3
- 3
src/image/codec/zed-palette-image.cpp View File

@@ -35,7 +35,7 @@ DECLARE_IMAGE_CODEC(ZedPaletteImageCodec, 10)

bool ZedPaletteImageCodec::Load(Image *image, char const *path)
{
if (!lol::String(path).EndsWith(".pal"))
if (!lol::String(path).ends_with(".pal"))
return false;

File file;
@@ -44,7 +44,7 @@ bool ZedPaletteImageCodec::Load(Image *image, char const *path)
//Put file in memory
long file_size = file.GetSize();
array<uint8_t> file_buffer;
file_buffer.Resize(file_size);
file_buffer.resize(file_size);
file.Read((uint8_t*)&file_buffer[0], file_size);
file.Close();

@@ -63,7 +63,7 @@ bool ZedPaletteImageCodec::Load(Image *image, char const *path)
#endif

u8vec4 *pixels = image->Lock<PixelFormat::RGBA_8>();
for (int i = 0; i < file_buffer.Count();)
for (int i = 0; i < file_buffer.count();)
{
pixels->r = file_buffer[i++];
pixels->g = file_buffer[i++];


+ 7
- 7
src/image/color/color.cpp View File

@@ -34,25 +34,25 @@ vec4 const Color::light_gray = vec4(.75f, .75f, .75f, 1);
String Color::HexString4Bpp(vec3 c)
{
uvec3 c2 = (uvec3)(clamp(c, 0.f, 1.f) * 255.999f);
return String::Printf("%01x%01x%01x", c2.r, c2.g, c2.b);
return String::format("%01x%01x%01x", c2.r, c2.g, c2.b);
}

String Color::HexString4Bpp(vec4 c)
{
uvec4 c2 = (uvec4)(clamp(c, 0.f, 1.f) * 15.999f);
return String::Printf("%01x%1x%01x%01x", c2.r, c2.g, c2.b, c2.a);
return String::format("%01x%1x%01x%01x", c2.r, c2.g, c2.b, c2.a);
}

String Color::HexString8Bpp(vec3 c)
{
uvec3 c2 = (uvec3)(clamp(c, 0.f, 1.f) * 255.999f);
return String::Printf("%02x%02x%02x", c2.r, c2.g, c2.b);
return String::format("%02x%02x%02x", c2.r, c2.g, c2.b);
}

String Color::HexString8Bpp(vec4 c)
{
uvec4 c2 = (uvec4)(clamp(c, 0.f, 1.f) * 15.999f);
return String::Printf("%02x%2x%02x%02x", c2.r, c2.g, c2.b, c2.a);
return String::format("%02x%2x%02x%02x", c2.r, c2.g, c2.b, c2.a);
}

/*
@@ -111,21 +111,21 @@ vec4 Color::C8BppHexString(String s)
{
String c = s[0] == '#' ? &s[1] : s;
uint32_t tmp = std::strtol(c.C(), nullptr, 16);
if (c.Count() == 3)
if (c.count() == 3)
{
tmp = 0x11000000u * (tmp >> 8)
| 0x00110000u * ((tmp >> 4) & 0xf)
| 0x00001100u * (tmp & 0xf)
| 0x000000ffu;
}
else if (c.Count() == 4)
else if (c.count() == 4)
{
tmp = 0x11000000u * (tmp >> 12)
| 0x00110000u * ((tmp >> 8) & 0xf)
| 0x00001100u * ((tmp >> 4) & 0xf)
| 0x00000011u * (tmp & 0xf);
}
else if (c.Count() == 6)
else if (c.count() == 6)
{
tmp = 0xffu | 0x100u * tmp;
}


+ 1
- 1
src/image/dither/dbs.cpp View File

@@ -30,7 +30,7 @@ Image Image::DitherDbs() const

/* Build our human visual system kernel. */
array2d<float> kernel;
kernel.SetSize(ivec2(NN, NN));
kernel.resize(ivec2(NN, NN));
float t = 0.f;
for (int j = 0; j < NN; j++)
for (int i = 0; i < NN; i++)


+ 1
- 1
src/image/dither/ediff.cpp View File

@@ -28,7 +28,7 @@ Image Image::DitherEdiff(array2d<float> const &kernel, ScanMode scan) const
Image dst = *this;

ivec2 size = dst.GetSize();
ivec2 ksize = (ivec2)kernel.GetSize();
ivec2 ksize = kernel.size();

int kx;
for (kx = 0; kx < ksize.x; kx++)


+ 1
- 1
src/image/dither/ordered.cpp View File

@@ -41,7 +41,7 @@ static Image DitherHelper(Image const &image, array2d<float> const &kernel,
float scale, float angle)
{
ivec2 size = image.GetSize();
ivec2 ksize = (ivec2)kernel.GetSize();
ivec2 ksize = kernel.size();

float cost = lol::cos(angle);
float sint = lol::sin(angle);


+ 4
- 4
src/image/filter/convolution.cpp View File

@@ -24,7 +24,7 @@ static Image NonSepConv(Image &src, array2d<float> const &kernel);
Image Image::Convolution(array2d<float> const &kernel)
{
/* Find the cell with the largest value */
ivec2 ksize = (ivec2)kernel.GetSize();
ivec2 ksize = kernel.size();
int bestx = -1, besty = -1;
float tmp = 0.f;
for (int dy = 0; dy < ksize.y; ++dy)
@@ -81,7 +81,7 @@ Image Image::Convolution(array2d<float> const &kernel)

Image Image::Sharpen(array2d<float> const &kernel)
{
ivec2 ksize = (ivec2)kernel.GetSize();
ivec2 ksize = kernel.size();
array2d<float> newkernel(ksize);

for (int dy = 0; dy < ksize.y; ++dy)
@@ -101,7 +101,7 @@ static Image NonSepConv(Image &src, array2d<float> const &kernel)
typedef typename PixelType<FORMAT>::type pixel_t;

ivec2 const size = src.GetSize();
ivec2 const ksize = (ivec2)kernel.GetSize();
ivec2 const ksize = kernel.size();
Image dst(size);

array2d<pixel_t> const &srcp = src.Lock2D<FORMAT>();
@@ -194,7 +194,7 @@ static Image SepConv(Image &src, array<float> const &hvec,
typedef typename PixelType<FORMAT>::type pixel_t;

ivec2 const size = src.GetSize();
ivec2 const ksize(hvec.Count(), vvec.Count());
ivec2 const ksize(hvec.count(), vvec.count());
Image dst(size);

array2d<pixel_t> const &srcp = src.Lock2D<FORMAT>();


+ 1
- 1
src/image/filter/median.cpp View File

@@ -164,7 +164,7 @@ Image Image::Median(array2d<float> const &kernel) const
else
#endif
{
ivec2 const ksize = (ivec2)kernel.GetSize();
ivec2 const ksize = kernel.size();
array2d<vec3> list(ksize);

vec4 *srcp = tmp.Lock<PixelFormat::RGBA_F32>();


+ 2
- 2
src/image/image-private.h View File

@@ -33,7 +33,7 @@ template<PixelFormat T>
class PixelData : public PixelDataBase
{
public:
inline PixelData(ivec2 size) { m_array2d.SetSize(size); }
inline PixelData(ivec2 size) { m_array2d.resize(size); }

virtual void *data() { return m_array2d.data(); }
virtual void const *data() const { return m_array2d.data(); }
@@ -88,7 +88,7 @@ public:
if (codeclist[i]->m_priority <= prio) \
break; \
} \
codeclist.Insert(codec, i); \
codeclist.insert(codec, i); \
}

#define DECLARE_IMAGE_CODEC(name, priority) \


+ 1
- 1
src/image/image.cpp View File

@@ -122,7 +122,7 @@ void Image::DummyFill()
//TODO: This is not very beautiful
for (auto codec : g_image_loader.m_codecs)
{
if (String(codec->GetName()).Contains("Dummy"))
if (String(codec->GetName()).contains("Dummy"))
{
codec->Load(this, nullptr);
return;


+ 3
- 3
src/image/kernel.cpp View File

@@ -182,10 +182,10 @@ static int cmpdot(const void *p1, const void *p2)

array2d<float> Image::NormalizeKernel(array2d<float> const &kernel)
{
ivec2 size = (ivec2)kernel.GetSize();
ivec2 size = kernel.size();

array<Dot> tmp;
tmp.Resize(size.x * size.y);
tmp.resize(size.x * size.y);

for (int y = 0; y < size.y; y++)
for (int x = 0; x < size.x; x++)
@@ -294,7 +294,7 @@ array2d<float> Image::GaussianKernel(vec2 radius, float angle, vec2 delta)
float const Kx = -1.f / (2.f * radius.x * radius.x);
float const Ky = -1.f / (2.f * radius.y * radius.y);

kernel.SetSize(size);
kernel.resize(size);

float t = 0.f;



+ 2
- 2
src/image/resample.cpp View File

@@ -144,8 +144,8 @@ static Image ResizeBresenham(Image &image, ivec2 size)
vec4 *dstp = dst.Lock<PixelFormat::RGBA_F32>();

array<vec4> aline, line;
aline.Resize(size.x);
line.Resize(size.x);
aline.resize(size.x);
line.resize(size.x);
memset(line.data(), 0, line.bytes());

int remy = 0;


+ 40
- 40
src/input/controller.cpp View File

@@ -27,7 +27,7 @@ void KeyBinding::Bind(const String& device_name, const String& key_name)
return;
}

ptrdiff_t keyindex = device->GetKeyIndex(key_name);
int keyindex = device->GetKeyIndex(key_name);
if (keyindex < 0)
{
Log::Warn("trying to bind nonexistent key %s.%s\n",
@@ -35,18 +35,18 @@ void KeyBinding::Bind(const String& device_name, const String& key_name)
return;
}

m_keybindings.Push(device, (int)keyindex);
m_keybindings.push(device, keyindex);
}

bool KeyBinding::Unbind(const String& device_name, const String& key_name)
{
for (int i = 0; i < m_keybindings.Count(); ++i)
for (int i = 0; i < m_keybindings.count(); ++i)
{
if (m_keybindings[i].m1->GetName() == device_name)
{
if (m_keybindings[i].m2 == m_keybindings[i].m1->GetKeyIndex(key_name))
{
m_keybindings.Remove(i);
m_keybindings.remove(i);
return true;
}
}
@@ -56,7 +56,7 @@ bool KeyBinding::Unbind(const String& device_name, const String& key_name)

void KeyBinding::ClearBindings()
{
m_keybindings.Empty();
m_keybindings.empty();
}

///////////////////////////////////////////////////////////////////////////////
@@ -72,7 +72,7 @@ void AxisBinding::Bind(const String& device_name, const String& axis_name)
return;
}

ptrdiff_t axisindex = device->GetAxisIndex(axis_name);
int axisindex = device->GetAxisIndex(axis_name);
if (axisindex < 0)
{
Log::Warn("trying to bind nonexistent axis %s.%s\n",
@@ -80,7 +80,7 @@ void AxisBinding::Bind(const String& device_name, const String& axis_name)
return;
}

m_axisbindings.Push(device, (int)axisindex);
m_axisbindings.push(device, axisindex);
}

void AxisBinding::BindKey(const String& device_name, const String& key_name)
@@ -93,7 +93,7 @@ void AxisBinding::BindKey(const String& device_name, const String& key_name)
return;
}

ptrdiff_t keyindex = device->GetKeyIndex(key_name);
int keyindex = device->GetKeyIndex(key_name);
if (keyindex < 0)
{
Log::Warn("trying to bind nonexistent axis key %s.%s\n",
@@ -101,7 +101,7 @@ void AxisBinding::BindKey(const String& device_name, const String& key_name)
return;
}

m_keybindings.Push(device, -1, (int)keyindex);
m_keybindings.push(device, -1, keyindex);
}

void AxisBinding::BindKeys(const String& device_name, const String& min_key_name, const String& max_key_name)
@@ -114,7 +114,7 @@ void AxisBinding::BindKeys(const String& device_name, const String& min_key_name
return;
}

ptrdiff_t minkeyindex = device->GetKeyIndex(min_key_name);
int minkeyindex = device->GetKeyIndex(min_key_name);
if (minkeyindex < 0)
{
Log::Warn("trying to bind nonexistent axis key %s.%s\n",
@@ -122,7 +122,7 @@ void AxisBinding::BindKeys(const String& device_name, const String& min_key_name
return;
}

ptrdiff_t maxkeyindex = device->GetKeyIndex(max_key_name);
int maxkeyindex = device->GetKeyIndex(max_key_name);
if (maxkeyindex < 0)
{
Log::Warn("trying to bind nonexistent axis key %s.%s\n",
@@ -130,18 +130,18 @@ void AxisBinding::BindKeys(const String& device_name, const String& min_key_name
return;
}

m_keybindings.Push(device, (int)minkeyindex, (int)maxkeyindex);
m_keybindings.push(device, minkeyindex, maxkeyindex);
}

bool AxisBinding::Unbind(const String& device_name, const String& axis_name)
{
for (int i = 0; i < m_keybindings.Count(); ++i)
for (int i = 0; i < m_keybindings.count(); ++i)
{
if (m_axisbindings[i].m1->GetName() == device_name)
{
if (m_axisbindings[i].m2 == m_axisbindings[i].m1->GetAxisIndex(axis_name))
{
m_axisbindings.Remove(i);
m_axisbindings.remove(i);
return true;
}
}
@@ -151,13 +151,13 @@ bool AxisBinding::Unbind(const String& device_name, const String& axis_name)

bool AxisBinding::UnbindKey(const String& device_name, const String& key_name)
{
for (int i = 0; i < m_keybindings.Count(); ++i)
for (int i = 0; i < m_keybindings.count(); ++i)
{
if (m_keybindings[i].m1->GetName() == device_name)
{
if (m_keybindings[i].m2 == -1 && m_keybindings[i].m3 == m_keybindings[i].m1->GetKeyIndex(key_name))
{
m_keybindings.Remove(i);
m_keybindings.remove(i);
return true;
}
}
@@ -167,14 +167,14 @@ bool AxisBinding::UnbindKey(const String& device_name, const String& key_name)

bool AxisBinding::UnbindKeys(const String& device_name, const String& min_key_name, const String& max_key_name)
{
for (int i = 0; i < m_keybindings.Count(); ++i)
for (int i = 0; i < m_keybindings.count(); ++i)
{
if (m_keybindings[i].m1->GetName() == device_name)
{
if (m_keybindings[i].m2 == m_keybindings[i].m1->GetKeyIndex(min_key_name)
&& m_keybindings[i].m3 == m_keybindings[i].m1->GetKeyIndex(max_key_name))
{
m_keybindings.Remove(i);
m_keybindings.remove(i);
return true;
}
}
@@ -185,8 +185,8 @@ bool AxisBinding::UnbindKeys(const String& device_name, const String& min_key_na

void AxisBinding::ClearBindings()
{
m_axisbindings.Empty();
m_keybindings.Empty();
m_axisbindings.empty();
m_keybindings.empty();
}

float AxisBinding::RetrieveCurrentValue()
@@ -194,7 +194,7 @@ float AxisBinding::RetrieveCurrentValue()
float max_positive = 0.0f;
float max_negative = 0.0f;

for (int i = 0; i < m_axisbindings.Count(); ++i)
for (int i = 0; i < m_axisbindings.count(); ++i)
{
float value = m_axisbindings[i].m1->GetAxis(m_axisbindings[i].m2);
if (value > max_positive)
@@ -203,7 +203,7 @@ float AxisBinding::RetrieveCurrentValue()
max_negative = value;
}

for (int i = 0; i < m_keybindings.Count(); ++i)
for (int i = 0; i < m_keybindings.count(); ++i)
{
float value = 0.0f;
m_keybindings[i].m1->GetKey(m_keybindings[i].m2);
@@ -238,7 +238,7 @@ Controller::Controller(String const &name)
{
Log::Warn("controller “%s” has already been registered\n", name.C());
}
controllers.Push(this);
controllers.push(this);
}

Controller::Controller(String const &name, InputProfile const& profile)
@@ -250,11 +250,11 @@ Controller::Controller(String const &name, InputProfile const& profile)
Controller::~Controller()
{
ClearProfile();
for (int i = 0; i < controllers.Count(); ++i)
for (int i = 0; i < controllers.count(); ++i)
{
if (controllers[i] == this)
{
controllers.Remove(i);
controllers.remove(i);
break;
}
}
@@ -274,8 +274,8 @@ void Controller::ClearProfile()
//Init mode 2: By hand, key/axis by key/axis ----------------------------------
void Controller::SetInputCount(int nb_keys, int nb_axis)
{
m_keys.Resize(nb_keys);
m_axis.Resize(nb_axis);
m_keys.resize(nb_keys);
m_axis.resize(nb_axis);
}

//Layer mask stuff ------------------------------------------------------------
@@ -342,7 +342,7 @@ float Controller::GetAxisDelta(int index) const
//-----------------------------------------------------------------------------
Controller* Controller::Get(String const &name)
{
for (int i = 0; i < controllers.Count(); ++i)
for (int i = 0; i < controllers.count(); ++i)
{
if (controllers[i]->m_name == name)
return controllers[i];
@@ -379,16 +379,16 @@ void Controller::UnbindProfile()
//Joystick
for (InputProfile::JoystickKey& key : m_profile.m_joystick_keys)
{
if (m_joystick_idx.Find(key.m_joy) != INDEX_NONE)
if (m_joystick_idx.find(key.m_joy) != INDEX_NONE)
GetKey(key.m_idx).UnbindJoystick(key.m_joy, key.m_name);
}
for (InputProfile::JoystickAxis& axis : m_profile.m_joystick_axis)
{
if (m_joystick_idx.Find(axis.m_joy) != INDEX_NONE)
if (m_joystick_idx.find(axis.m_joy) != INDEX_NONE)
GetAxis(axis.m_idx).UnbindJoystick(axis.m_joy, axis.m_name);
}
m_joystick.Empty();
m_joystick_idx.Empty();
m_joystick.empty();
m_joystick_idx.empty();

m_mutex.unlock();
}
@@ -400,8 +400,8 @@ void Controller::BindProfile(InputProfile const& setup)
m_mutex.lock();
m_profile = setup;

m_keys.Resize(m_profile.GetKeyCount());
m_axis.Resize(m_profile.GetAxisCount());
m_keys.resize(m_profile.GetKeyCount());
m_axis.resize(m_profile.GetAxisCount());

//Keyboard
m_keyboard = InputDevice::GetKeyboard();
@@ -433,12 +433,12 @@ void Controller::BindProfile(InputProfile const& setup)
}
for (InputProfile::JoystickKey& key : m_profile.m_joystick_keys)
{
if (m_joystick_idx.Find(key.m_joy) != INDEX_NONE)
if (m_joystick_idx.find(key.m_joy) != INDEX_NONE)
GetKey(key.m_idx).BindJoystick(key.m_joy, key.m_name);
}
for (InputProfile::JoystickAxis& axis : m_profile.m_joystick_axis)
{
if (m_joystick_idx.Find(axis.m_joy) != INDEX_NONE)
if (m_joystick_idx.find(axis.m_joy) != INDEX_NONE)
GetAxis(axis.m_idx).BindJoystick(axis.m_joy, axis.m_name);
}

@@ -452,10 +452,10 @@ void Controller::TickGame(float seconds)

if (m_active)
{
for (int i = 0; i < m_keys.Count(); ++i)
for (int i = 0; i < m_keys.count(); ++i)
m_keys[i].Update();

for (int i = 0; i < m_axis.Count(); ++i)
for (int i = 0; i < m_axis.count(); ++i)
m_axis[i].Update();
}

@@ -487,11 +487,11 @@ array<Controller*> Controller::DeactivateAll()
{
array<Controller*> result;

for (int i = 0; i < controllers.Count(); ++i)
for (int i = 0; i < controllers.count(); ++i)
{
if (controllers[i]->m_active || controllers[i]->m_activate_nextframe)
{
result.Push(controllers[i]);
result.push(controllers[i]);
controllers[i]->Deactivate();
}
}


+ 21
- 21
src/input/controller.h View File

@@ -50,7 +50,7 @@ public:
/** Clear current binding */
void ClearBindings();
/** Indicate wheither a physical device and key has been bound. Returns the number of bindings set. */
ptrdiff_t IsBound() const { return m_keybindings.Count(); }
int IsBound() const { return m_keybindings.count(); }

protected:
/** Update the binding value. Called internally by the controller, once per frame */
@@ -58,7 +58,7 @@ protected:
{
m_previous = m_current;
m_current = false;
for (int i = 0; i < m_keybindings.Count(); ++i)
for (int i = 0; i < m_keybindings.count(); ++i)
{
m_current = m_current || m_keybindings[i].m1->GetKey(m_keybindings[i].m2);
}
@@ -120,7 +120,7 @@ public:
/** Clear current binding */
void ClearBindings();
/** Indicate wheither a physical device and axis has been bound. Returns the number of bindings set. */
ptrdiff_t IsBound() const { return m_axisbindings.Count() + m_keybindings.Count(); }
int IsBound() const { return m_axisbindings.count() + m_keybindings.count(); }

protected:
void Update()
@@ -244,16 +244,16 @@ public:
}
int GetKeyCount() const
{
return (int)(m_keys.Count() + m_mouse_keys.Count() + m_joystick_keys.Count());
return m_keys.count() + m_mouse_keys.count() + m_joystick_keys.count();
}
int GetAxisCount() const
{
return (int)(m_mouse_axis.Count() + m_joystick_axis.Count());
return m_mouse_axis.count() + m_joystick_axis.count();
}
//Keys --------------------------------------------------------------------
InputProfile& operator<<(InputProfile::Keyboard const& binding)
{
m_keys.PushUnique(binding);
m_keys.push_unique(binding);
return *this;
}
InputProfile& operator<<(array<InputProfile::Keyboard> const& bindings)
@@ -264,7 +264,7 @@ public:
//------
InputProfile& operator<<(InputProfile::MouseKey const& binding)
{
m_mouse_keys.PushUnique(binding);
m_mouse_keys.push_unique(binding);
return *this;
}
InputProfile& operator<<(array<InputProfile::MouseKey> const& bindings)
@@ -275,21 +275,21 @@ public:
//------
InputProfile& operator<<(InputProfile::JoystickKey const& binding)
{
m_joystick.PushUnique(binding.m_joy);
m_joystick_keys.PushUnique(binding);
m_joystick.push_unique(binding.m_joy);
m_joystick_keys.push_unique(binding);
return *this;
}
InputProfile& operator<<(array<InputProfile::JoystickKey> const& bindings)
{
for (InputProfile::JoystickKey const& binding : bindings)
m_joystick.PushUnique(binding.m_joy);
m_joystick.push_unique(binding.m_joy);
m_joystick_keys += bindings;
return *this;
}
//Axis --------------------------------------------------------------------
InputProfile& operator<<(InputProfile::MouseAxis const& binding)
{
m_mouse_axis.PushUnique(binding);
m_mouse_axis.push_unique(binding);
return *this;
}
InputProfile& operator<<(array<InputProfile::MouseAxis> const& bindings)
@@ -300,14 +300,14 @@ public:
//------
InputProfile& operator<<(InputProfile::JoystickAxis const& binding)
{
m_joystick.PushUnique(binding.m_joy);
m_joystick_axis.PushUnique(binding);
m_joystick.push_unique(binding.m_joy);
m_joystick_axis.push_unique(binding);
return *this;
}
InputProfile& operator<<(array<InputProfile::JoystickAxis> const& bindings)
{
for (InputProfile::JoystickAxis const& binding : bindings)
m_joystick.PushUnique(binding.m_joy);
m_joystick.push_unique(binding.m_joy);
m_joystick_axis += bindings;
return *this;
}
@@ -331,18 +331,18 @@ public:
typedef SafeEnum<InputTypeBase> InputType;

//Template helper ---------------------------------------------------------
template <typename T, ptrdiff_t BEGIN, ptrdiff_t END>
template <typename T, int N_BEGIN, int N_END>
void AddBindings(InputType const& type, uint64_t joy = 0)
{
for (ptrdiff_t i = BEGIN; i < END; ++i)
for (int i = N_BEGIN; i < N_END; ++i)
{
switch (type.ToScalar())
{
case InputType::Keyboard:/******/*this << InputProfile::Keyboard/******/(/***/(int)i, T((int)i).ToString()); break;
case InputType::MouseKey:/******/*this << InputProfile::MouseKey/******/(/***/(int)i, T((int)i).ToString()); break;
case InputType::JoystickKey:/***/*this << InputProfile::JoystickKey/***/(joy, (int)i, T((int)i).ToString()); break;
case InputType::MouseAxis:/*****/*this << InputProfile::MouseAxis/*****/(/***/(int)i, T((int)i).ToString()); break;
case InputType::JoystickAxis:/**/*this << InputProfile::JoystickAxis/**/(joy, (int)i, T((int)i).ToString()); break;
case InputType::Keyboard:/******/*this << InputProfile::Keyboard/******/(/***/i, T(i).ToString()); break;
case InputType::MouseKey:/******/*this << InputProfile::MouseKey/******/(/***/i, T(i).ToString()); break;
case InputType::JoystickKey:/***/*this << InputProfile::JoystickKey/***/(joy, i, T(i).ToString()); break;
case InputType::MouseAxis:/*****/*this << InputProfile::MouseAxis/*****/(/***/i, T(i).ToString()); break;
case InputType::JoystickAxis:/**/*this << InputProfile::JoystickAxis/**/(joy, i, T(i).ToString()); break;
default: break;
}
}


+ 19
- 19
src/input/input.cpp View File

@@ -21,9 +21,9 @@ bool InputDevice::m_capturemouse;
array<String> InputDevice::GetAvailableDevices()
{
array<String> result;
for (int i = 0; i < devices.Count(); ++i)
for (int i = 0; i < devices.count(); ++i)
{
result.Push(devices[i]->m_name);
result.push(devices[i]->m_name);
}
return result;
}
@@ -38,45 +38,45 @@ String InputDevice::GetText()
void InputDeviceInternal::AddKey(int index, const char* name)
{
if (index == -1)
index = (int)m_keynames.Count();
index = m_keynames.count();

while (index >= m_keynames.Count())
while (index >= m_keynames.count())
{
m_keynames.Push(name);
m_keys.Push(false);
m_keynames.push(name);
m_keys.push(false);
}

m_keynames.Last() = name;
m_keynames.last() = name;
}

void InputDeviceInternal::AddAxis(int index, const char* name, float sensitivity)
{
if (index == -1)
index = (int)m_axisnames.Count();
index = m_axisnames.count();

while (index >= m_axisnames.Count())
while (index >= m_axisnames.count())
{
m_axisnames.Push(name);
m_axis.Push(0.0f, 1.0f);
m_axisnames.push(name);
m_axis.push(0.0f, 1.0f);
}

m_axisnames.Last() = name;
m_axis.Last().m1 = 0.0f;
m_axis.Last().m2 = sensitivity;
m_axisnames.last() = name;
m_axis.last().m1 = 0.0f;
m_axis.last().m2 = sensitivity;
}

void InputDeviceInternal::AddCursor(int index, const char* name)
{
if (index == -1)
index = (int)m_cursornames.Count();
index = m_cursornames.count();

while (index >= m_cursornames.Count())
while (index >= m_cursornames.count())
{
m_cursornames.Push(name);
m_cursors.Push(vec2::zero, ivec2::zero);
m_cursornames.push(name);
m_cursors.push(vec2::zero, ivec2::zero);
}

m_cursornames.Last() = name;
m_cursornames.last() = name;
}

InputDeviceInternal* InputDeviceInternal::CreateStandardKeyboard()


+ 6
- 6
src/input/input.h View File

@@ -18,7 +18,7 @@ const String g_name_mouse("Mouse");
const String g_name_keyboard("Keyboard");
static String g_name_joystick(const uint64_t num)
{
return String::Printf("Joystick%d", (int)num);
return String::format("Joystick%d", (int)num);
}

# define _SC(id, str, name) const String g_name_key_##name(#name);
@@ -202,16 +202,16 @@ protected:

InputDevice(String const &name) : m_name(name)
{
devices.PushUnique(this);
devices.push_unique(this);
}

~InputDevice()
{
for (ptrdiff_t i = 0; i < devices.Count(); ++i)
for (int i = 0; i < devices.count(); ++i)
{
if (devices[i] == this)
{
devices.Remove(i);
devices.remove(i);
return;
}
}
@@ -223,7 +223,7 @@ private:
template <typename... T>
ptrdiff_t GetItemIndex(String const &name, const array<String, T...>& a) const
{
for (ptrdiff_t i = 0; i < a.Count(); ++i)
for (int i = 0; i < a.count(); ++i)
{
if (a[i] == name)
return i;
@@ -233,7 +233,7 @@ private:

static InputDevice* GetDevice(String const &name)
{
for (ptrdiff_t i = 0; i < devices.Count(); ++i)
for (int i = 0; i < devices.count(); ++i)
{
if (devices[i]->m_name == name)
return devices[i];


+ 36
- 36
src/lol/algorithm/aabb_tree.h View File

@@ -34,14 +34,14 @@ void DrawInner(TREE *tree, array<TBB, vec4> &boxes,
array<TE *, int, vec4> &elements,
array<int, TBB> &leaves, int children, vec4 color)
{
boxes.Push(tree->GetAABB(), Color::white);
leaves.Push(0, boxes.Last().m1);
while (leaves.Count() > 0)
boxes.push(tree->GetAABB(), Color::white);
leaves.push(0, boxes.last().m1);
while (leaves.count() > 0)
{
for (int j = 0; j < tree->GetTree()[leaves[0].m1].m_elements.Count(); j++)
for (int j = 0; j < tree->GetTree()[leaves[0].m1].m_elements.count(); j++)
{
bool done = false;
for (int k = 0; k < elements.Count(); k++)
for (int k = 0; k < elements.count(); k++)
{
if (elements[k].m1 == tree->GetElements()[tree->GetTree()[leaves[0].m1].m_elements[j]].m_element)
{
@@ -51,7 +51,7 @@ void DrawInner(TREE *tree, array<TBB, vec4> &boxes,
}
}
if (!done)
elements.Push(tree->GetElements()[tree->GetTree()[leaves[0].m1].m_elements[j]].m_element, 1, Color::red);
elements.push(tree->GetElements()[tree->GetTree()[leaves[0].m1].m_elements[j]].m_element, 1, Color::red);
}

for (int i = 0; i < children; i++)
@@ -59,11 +59,11 @@ void DrawInner(TREE *tree, array<TBB, vec4> &boxes,
if (tree->GetTree()[leaves[0].m1].m_children[i] != 0)
{
TBB bbox = tree->GetSubAABB(leaves[0].m2, i);
leaves.Push(tree->GetTree()[leaves[0].m1].m_children[i], bbox);
boxes.Push(bbox, color);
leaves.push(tree->GetTree()[leaves[0].m1].m_children[i], bbox);
boxes.push(bbox, color);
}
}
leaves.Remove(0);
leaves.remove(0);
}
}

@@ -79,14 +79,14 @@ void Draw(Quadtree<TE>* tree, vec4 color)

vec3 off = vec3(0.0f, 0.1f, 0.0f);
//vec3 add = vec3(0.0f, 0.1f, 0.0f);
while (boxes.Count() > 0)
while (boxes.count() > 0)
{
Debug::DrawBox(vec3(boxes[0].m1.aa.x, tree->m_debug_y_offset, boxes[0].m1.aa.y),
vec3(boxes[0].m1.bb.x, tree->m_debug_y_offset, boxes[0].m1.bb.y),
boxes[0].m2);
boxes.Remove(0);
boxes.remove(0);
}
while (elements.Count() > 0)
while (elements.count() > 0)
{
while (elements[0].m2 > 0)
{
@@ -95,7 +95,7 @@ void Draw(Quadtree<TE>* tree, vec4 color)
elements[0].m3);
elements[0].m2--;
}
elements.Remove(0);
elements.remove(0);
}
}
//--
@@ -110,16 +110,16 @@ void Draw(Octree<TE>* tree, vec4 color)

vec3 off = vec3(0.0f, 0.1f, 0.0f);
//vec3 add = vec3(0.0f, 0.1f, 0.0f);
while (boxes.Count() > 0)
while (boxes.count() > 0)
{
//float size = boxes[0].m1.bb.x - boxes[0].m1.aa.x;
Debug::DrawBox(vec3(boxes[0].m1.aa.x, boxes[0].m1.aa.y, boxes[0].m1.aa.z) /* + off * (m_size.x / size) */,
vec3(boxes[0].m1.bb.x, boxes[0].m1.bb.y, boxes[0].m1.bb.z) /* + off * (m_size.x / size) */,
boxes[0].m2);
//off += add;
boxes.Remove(0);
boxes.remove(0);
}
while (elements.Count() > 0)
while (elements.count() > 0)
{
while (elements[0].m2 > 0)
{
@@ -128,7 +128,7 @@ void Draw(Octree<TE>* tree, vec4 color)
elements[0].m3);
elements[0].m2--;
}
elements.Remove(0);
elements.remove(0);
}
}
//--
@@ -213,7 +213,7 @@ private:
void RemoveElement(TE* element)
{
int idx = INDEX_NONE;
for (int i = 0; i < m_elements.Count(); ++i)
for (int i = 0; i < m_elements.count(); ++i)
if (m_elements[i].m_element == element)
idx = i;

@@ -221,8 +221,8 @@ private:
return;

//Remove item from tree leaves
for (int i = 0; i < m_elements[idx].m_leaves.Count(); i++)
m_tree[m_elements[idx].m_leaves[i]].m_elements.RemoveItem(idx);
for (int i = 0; i < m_elements[idx].m_leaves.count(); i++)
m_tree[m_elements[idx].m_leaves[i]].m_elements.removeItem(idx);

//Try leaves cleanup
CleanupEmptyLeaves();
@@ -230,7 +230,7 @@ private:
//--
int AddElement(TE* element)
{
for (int i = 0; i < m_elements.Count(); ++i)
for (int i = 0; i < m_elements.count(); ++i)
if (m_elements[i].m_element == element)
return i;

@@ -238,15 +238,15 @@ private:
new_element.m_element = element;
new_element.m_leaves = array<int>();
m_elements << new_element;
return (int)m_elements.Count() - 1;
return m_elements.count() - 1;
}
//--
int AddLeaf(int parent)
{
int idx = (int)m_tree.Count();
if (m_free_leaves.Count())
int idx = m_tree.count();
if (m_free_leaves.count())
{
idx = m_free_leaves.Pop();
idx = m_free_leaves.pop();
m_tree[idx] = NodeLeaf(parent);
}
else
@@ -270,8 +270,8 @@ private:
}
else
{
for (int j = 0; j < node.m_elements.Count(); j++)
elements.PushUnique(m_elements[node.m_elements[j]].m_element);
for (int j = 0; j < node.m_elements.count(); j++)
elements.push_unique(m_elements[node.m_elements[j]].m_element);
result = true;
}
}
@@ -296,29 +296,29 @@ private:
return true;

//Too much elements, we need to re-dispatch the elements
if (m_tree[leaf].m_elements.Count() + 1 > m_max_element &&
if (m_tree[leaf].m_elements.count() + 1 > m_max_element &&
depth < m_max_depth)
{
//Extract elements
array<int> elements = m_tree[leaf].m_elements;
elements.PushUnique(AddElement(element));
m_tree[leaf].m_elements.Empty();
elements.push_unique(AddElement(element));
m_tree[leaf].m_elements.empty();
//Add children
for (size_t j = 0; j < child_nb; ++j)
m_tree[leaf].m_children[j] = AddLeaf(leaf);
//Re-run extracted elements
while (elements.Count())
while (elements.count())
{
RegisterElement(m_elements[elements[0]].m_element, leaf, leaf_bb, depth);
elements.Remove(0);
elements.remove(0);
}
}
//else add to list.
else
{
int idx = AddElement(element);
m_elements[idx].m_leaves.PushUnique(leaf);
m_tree[leaf].m_elements.PushUnique(idx);
m_elements[idx].m_leaves.push_unique(leaf);
m_tree[leaf].m_elements.push_unique(idx);
}
return true;
}
@@ -331,8 +331,8 @@ public:
bool FindElements(const TB& bbox, array<TE*>& elements) { return TestLeaf(0, GetAABB(), bbox, elements); }
void Clear()
{
m_tree.Empty();
m_elements.Empty();
m_tree.empty();
m_elements.empty();
}

//--


+ 15
- 15
src/lol/algorithm/portal.h View File

@@ -260,21 +260,21 @@ public:
{
for (auto door : m_doors)
door->DisconnectRoom(this);
m_doors.Empty();
m_doors.empty();
}

PortalRoom& operator<<(class PortalDoor<TE>* door)
{
m_doors.PushUnique(door);
m_doors.push_unique(door);
return *this;
}
PortalRoom& operator>>(class PortalDoor<TE>* door)
{
m_doors.RemoveSwapItem(door);
m_doors.remove_swap_item(door);
return *this;
}

int GetDoorCount() { return m_doors.Count(); }
int GetDoorCount() { return m_doors.count(); }
PortalDoor<TE>* GetDoor(int i) { return m_doors[i]; }

private:
@@ -294,8 +294,8 @@ public:
delete door;
for (auto room : m_rooms)
delete room;
m_doors.Empty();
m_rooms.Empty();
m_doors.empty();
m_rooms.empty();
}

//Visible room getter
@@ -336,8 +336,8 @@ private:
if (visible_rooms.Find(other_room) != INDEX_NONE)
continue;

ignore_doors.PushUnique(door);
visible_rooms.PushUnique(other_room);
ignore_doors.push_unique(door);
visible_rooms.push_unique(other_room);
door->BuildViewProj(see_through->m_view, see_through->m_proj);
GetVisibleRooms(door, other_room, visible_rooms, ignore_doors);
}
@@ -348,9 +348,9 @@ public:
//Operator
PortalSet<TE>& operator<<(class PortalRoom<TE>* room)
{
m_rooms.PushUnique(room);
m_rooms.push_unique(room);
for (auto door : room->m_doors)
m_doors.PushUnique(door);
m_doors.push_unique(door);
return *this;
}
//--
@@ -358,26 +358,26 @@ public:
{
for (auto door : room->m_doors)
*this >> door;
m_rooms.RemoveItem(room);
m_rooms.remove_item(room);
return *this;
}
//--
PortalSet<TE>& operator<<(class PortalDoor<TE>* door)
{
m_doors.PushUnique(door);
m_doors.push_unique(door);
return *this;
}
//--
PortalSet<TE>& operator>>(class PortalDoor<TE>* door)
{
m_doors.RemoveItem(door);
m_doors.remove_item(door);
return *this;
}

//--
int GetDoorCount() { return m_doors.Count(); }
int GetDoorCount() { return m_doors.count(); }
PortalDoor<TE>* GetDoor(int i) { return m_doors[i]; }
int GetRoomCount() { return m_rooms.Count(); }
int GetRoomCount() { return m_rooms.count(); }
PortalRoom<TE>* GetRoom(int i) { return m_rooms[i]; }

private:


+ 6
- 6
src/lol/algorithm/sort.h View File

@@ -21,12 +21,12 @@ namespace lol
template<typename T, typename ARRAY>
void array_base<T, ARRAY>::Shuffle()
{
auto n = Count();
auto n = count();
auto ni = n;
while (n > 0)
{
ni = lol::rand(n--) | 0;
Swap(ni, n);
std::swap(m_data[ni], m_data[n]);
}
}

@@ -41,13 +41,13 @@ void array_base<T, ARRAY>::Sort(SortAlgorithm algorithm)
if (algorithm == SortAlgorithm::Bubble)
{
int d = 1;
for (ptrdiff_t i = 0; i < Count() - 1; i = lol::max(i + d, (ptrdiff_t)0))
for (ptrdiff_t i = 0; i < count_s() - 1; i = lol::max(i + d, (ptrdiff_t)0))
{
if (i <= 0 || m_data[i] < m_data[i + 1])
d = 1;
if (m_data[i + 1] < m_data[i])
{
Swap(i, i + 1);
std::swap(m_data[i], m_data[i + 1]);
d = -1;
}
}
@@ -55,7 +55,7 @@ void array_base<T, ARRAY>::Sort(SortAlgorithm algorithm)
// Quick sort with swap
else if (algorithm == SortAlgorithm::QuickSwap)
{
SortQuickSwap(0, Count());
SortQuickSwap(0, count_s());
}
}

@@ -90,7 +90,7 @@ void array_base<T, ARRAY>::SortQuickSwap(ptrdiff_t start, ptrdiff_t stop)
{
if (!(m_data[i0] < median) && m_data[i1] < median)
{
Swap(i0, i1);
std::swap(m_data[i0], m_data[i1]);
i0++;
i1--;
b_swap = true;


+ 5
- 53
src/lol/base/array.h View File

@@ -278,18 +278,6 @@ public:
return false;
}

bool SwapItem(T const &x1, T const &x2)
{
ptrdiff_t idx1 = find(x1);
ptrdiff_t idx2 = find(x2);
if (idx1 != INDEX_NONE && idx2 != INDEX_NONE)
{
swap(idx1, idx2);
return true;
}
return false;
}

inline T pop()
{
ASSERT(m_count > 0);
@@ -298,19 +286,6 @@ public:
return tmp;
}

void swap(ptrdiff_t pos1, ptrdiff_t pos2)
{
ASSERT(pos1 >= 0 && pos1 <= m_count,
"cannot swap index %lld in array of size %lld",
(long long int)pos1, (long long int)m_count);
ASSERT(pos2 >= 0 && pos2 <= m_count,
"cannot swap index %lld in array of size %lld",
(long long int)pos2, (long long int)m_count);

if (pos1 != pos2)
std::swap((*this)[pos1], (*this)[pos2]);
}

void remove(ptrdiff_t pos, ptrdiff_t todelete = 1)
{
ASSERT(todelete >= 0);
@@ -396,28 +371,6 @@ public:
void Sort(SortAlgorithm algorithm);
void SortQuickSwap(ptrdiff_t start, ptrdiff_t stop);

/* TODO: remove these legacy functions one day */
inline void Push(T const &x) { push(x); }
inline bool PushUnique(T const &x) { return push_unique(x); }
inline T Pop() { return pop(); }
inline void Swap(ptrdiff_t pos1, ptrdiff_t pos2) { swap(pos1, pos2); }
inline void Remove(ptrdiff_t pos, ptrdiff_t todelete = 1) { remove(pos, todelete); }
inline void RemoveSwap(ptrdiff_t pos, ptrdiff_t todelete = 1) { remove_swap(pos, todelete); }
inline void Empty() { empty(); }
inline element_t& Last() { return last(); }
inline element_t *Data() { return data(); }
inline element_t const *Data() const { return data(); }
inline element_t const& Last() const { return last(); }
inline void Insert(T const &x, ptrdiff_t pos) { return insert(x, pos); }
inline bool InsertUnique(T const &x, ptrdiff_t pos) { return insert_unique(x, pos); }
inline ptrdiff_t Find(T const &x) { return find(x); }
inline bool RemoveItem(T const &x) { return remove_item(x); }
inline bool RemoveSwapItem(T const &x) { return remove_swap_item(x); }
inline void Resize(ptrdiff_t item_count, element_t e = element_t()) { return resize(item_count, e); }
inline void Reserve(ptrdiff_t toreserve) { return reserve(toreserve); }
inline ptrdiff_t Count() const { return count(); }
inline ptrdiff_t Bytes() const { return bytes(); }

/* Support C++11 range-based for loops */
class ConstIterator
{
@@ -478,8 +431,11 @@ public:
};

public:
inline ptrdiff_t count() const { return m_count; }
inline ptrdiff_t bytes() const { return m_count * sizeof(element_t); }
inline int count() const { return (int)m_count; }
inline int bytes() const { return (int)(m_count * sizeof(element_t)); }

inline ptrdiff_t count_s() const { return m_count; }
inline ptrdiff_t bytes_s() const { return m_count * sizeof(element_t); }

protected:
void grow()
@@ -549,10 +505,6 @@ public:
new (&this->m_data[pos]) tuple<T...>({ args... });
++this->m_count;
}

/* TODO: remove these legacy functions one day */
inline void Push(T... args) { push(args...); }
inline void Insert(ptrdiff_t pos, T... args) { insert(pos, args...); }
};

template<typename T>


+ 7
- 2
src/lol/base/map.h View File

@@ -101,16 +101,21 @@ public:
array<K> ret;

for (auto iterator : m_tree)
ret.Push(iterator.key);
ret.push(iterator.key);

return ret;
}

inline ptrdiff_t count() const
inline int count() const
{
return m_tree.count();
}

inline ptrdiff_t count_s() const
{
return m_tree.count_s();
}

inline void empty()
{
m_tree.clear();


+ 26
- 64
src/lol/base/string.h View File

@@ -49,7 +49,7 @@ public:
memcpy(&(*this)[0], str, count() + 1);
}

inline String(char const *str, ptrdiff_t item_count)
inline String(char const *str, int item_count)
: super()
{
using namespace std;
@@ -64,7 +64,7 @@ public:
{
}

inline char &operator [](ptrdiff_t n)
inline char &operator [](int n)
{
/* Allow n == count() because we might have reasonable reasons
* to access that hidden null character. */
@@ -73,7 +73,7 @@ public:
return ((super &)*this)[n];
}

inline char const &operator [](ptrdiff_t n) const
inline char const &operator [](int n) const
{
ASSERT(n >= 0);
ASSERT(n <= count());
@@ -92,7 +92,7 @@ public:
return (*this)[count() - 1];
}

inline ptrdiff_t count() const
inline int count() const
{
return ((super const &)*this).count() - 1;
}
@@ -110,14 +110,14 @@ public:
}

/* Does not initialise the newly allocated characters */
void resize(ptrdiff_t item_count)
void resize(int item_count)
{
ASSERT(item_count >= 0);
((super &)*this).resize(item_count + 1);
((super &)*this).last() = '\0';
}

String sub(ptrdiff_t start, ptrdiff_t item_count = -1) const
String sub(int start, int item_count = -1) const
{
ASSERT(start >= 0);
if (start >= count())
@@ -132,40 +132,40 @@ public:
return index_of(s.C()) != INDEX_NONE;
}

ptrdiff_t index_of(char token) const
int index_of(char token) const
{
using namespace std;

char const *tmp = strchr(C(), token);
return tmp ? (ptrdiff_t)(tmp - C()) : INDEX_NONE;
return tmp ? int(tmp - C()) : INDEX_NONE;
}

ptrdiff_t index_of(String const& token) const { return index_of(token.C()); }
ptrdiff_t index_of(char const* token) const
int index_of(String const& token) const { return index_of(token.C()); }
int index_of(char const* token) const
{
using namespace std;

char const *tmp = strstr(C(), token);
return tmp ? (ptrdiff_t)(tmp - C()) : INDEX_NONE;
return tmp ? int(tmp - C()) : INDEX_NONE;
}

ptrdiff_t last_index_of(char token) const
int last_index_of(char token) const
{
using namespace std;

char const *tmp = strrchr(C(), token);
return tmp ? (ptrdiff_t)(tmp - C()) : INDEX_NONE;
return tmp ? int(tmp - C()) : INDEX_NONE;
}

ptrdiff_t last_index_of(String const& token) const { return last_index_of(token.C()); }
ptrdiff_t last_index_of(char const* token) const
int last_index_of(String const& token) const { return last_index_of(token.C()); }
int last_index_of(char const* token) const
{
using namespace std;

ptrdiff_t token_len = strlen(token);
for (ptrdiff_t i = count() - token_len; i >= 0; --i)
if (strstr(C() + i, token))
return i;
int token_len = strlen(token);
for (int i = count() - token_len; i >= 0; --i)
if (strstr(C() + i, token))
return i;
return -1;
}

@@ -189,7 +189,7 @@ public:
inline String& to_lower()
{
String ret(*this);
for (ptrdiff_t i = 0; i < ret.count(); ++i)
for (int i = 0; i < ret.count(); ++i)
{
if ('A' <= ret[i] && ret[i] <= 'Z')
ret[i] += 'a' - 'A';
@@ -201,7 +201,7 @@ public:
inline String& to_upper()
{
String ret(*this);
for (ptrdiff_t i = 0; i < ret.count(); ++i)
for (int i = 0; i < ret.count(); ++i)
{
if ('a' <= ret[i] && ret[i] <= 'z')
ret[i] += 'A' - 'a';
@@ -230,7 +230,7 @@ public:

bool is_alpha() const
{
for (ptrdiff_t i = 0; i < m_count; i++)
for (int i = 0; i < m_count; i++)
if (m_data[i] != '\0' && (m_data[i] < '0' || '9' < m_data[i]))
return false;
return true;
@@ -251,7 +251,7 @@ public:
inline String& operator +=(String const &s)
{
using namespace std;
ptrdiff_t old_count = count();
int old_count = count();
resize(count() + s.count());
memcpy(&(*this)[old_count], &s[0], count() - old_count);
return *this;
@@ -281,7 +281,7 @@ public:
/* We parse the C string twice because of strlen + memcmp
* but it's probably still faster than doing it by hand. */
using namespace std;
ptrdiff_t sz_len = strlen(sz);
int sz_len = strlen(sz);
return count() == sz_len
&& memcmp(C(), sz, sz_len) == 0;
}
@@ -307,47 +307,9 @@ public:
#else
# define LOL_FMT_ATTR(n, p)
#endif
static String Printf(char const *format, ...) LOL_FMT_ATTR(1, 2);
static String format(char const *format, ...) LOL_FMT_ATTR(1, 2);
#undef LOL_FMT_ATTR
static String VPrintf(char const *format, va_list ap);

/* TODO: remove these legacy functions one day */
inline char &Last() { return last(); }
inline char const &Last() const { return last(); }
inline void Resize(ptrdiff_t item_count) { return resize(item_count); }
inline String& ToLower() { return to_lower(); }
inline String& ToUpper() { return to_upper(); }
inline String& CaseChange(bool case_to_upper) { return case_to_upper ? ToUpper() : ToLower(); }
inline String Sub(ptrdiff_t start, ptrdiff_t item_count = -1) const { return sub(start, item_count); }
inline bool Contains(String const &s) const { return contains(s); }
inline ptrdiff_t IndexOf(char token) const { return index_of(token); }
inline ptrdiff_t IndexOf(char const* token) const { return index_of(token); }
inline ptrdiff_t LastIndexOf(char token) const { return last_index_of(token); }
inline int Replace(char const old_token, char const new_token, bool all_occurrences = false) { return replace(old_token, new_token, all_occurrences); }
inline bool EndsWith(String const &s) const { return ends_with(s); }
inline bool IsAlpha() const { return is_alpha(); }
inline bool StartsWith(String const &s) const { return starts_with(s); }
inline ptrdiff_t Count() const { return count(); }
};

class Line
{
public:
Line(String const& s)
{
m_line = s + "\n";
}
inline operator String()
{
return m_line;
}
inline operator const char*()
{
return m_line.C();
}

private:
String m_line;
static String vformat(char const *format, va_list ap);
};

inline bool operator ==(char const* sz, String const &s)


+ 2
- 2
src/lol/gpu/renderer.h View File

@@ -138,8 +138,8 @@ public:
void *GetDevice();

static void AddNew(ivec2 size);
static ptrdiff_t GetCount();
static Renderer* Get(ptrdiff_t index = 0);
static int GetCount();
static Renderer* Get(int index = 0);
static void DestroyAll();

public:


+ 23
- 34
src/lol/math/arraynd.h View File

@@ -33,7 +33,7 @@
namespace lol
{

template<typename T, ptrdiff_t L>
template<typename T, int L>
class arraynd_initializer
{
public:
@@ -45,15 +45,15 @@ public:

void FillSizes(ptrdiff_t * sizes)
{
*sizes = std::max((ptrdiff_t)*sizes, (ptrdiff_t)(m_initializers.size()));
*sizes = max(*sizes, (ptrdiff_t)m_initializers.size());

for (auto subinitializer : m_initializers)
subinitializer.FillSizes(sizes - 1);
}

void FillValues(T * origin, ptrdiff_t prev, ptrdiff_t * sizes)
void FillValues(T * origin, int prev, ptrdiff_t * sizes)
{
ptrdiff_t pos = 0;
int pos = 0;

for (auto subinitializer : m_initializers)
subinitializer.FillValues(origin, pos++ + prev * *sizes, sizes - 1);
@@ -77,14 +77,12 @@ public:

void FillSizes(ptrdiff_t * sizes)
{
*sizes = std::max((ptrdiff_t)*sizes, (ptrdiff_t)(m_initializers.size()));
*sizes = max(*sizes, (ptrdiff_t)m_initializers.size());
}

void FillValues(T * origin, ptrdiff_t prev, ptrdiff_t * sizes)
void FillValues(T * origin, int prev, ptrdiff_t * sizes)
{
UNUSED(sizes);

ptrdiff_t pos = 0;
int pos = 0;

for (auto value : m_initializers)
*(origin + prev * *sizes + pos++) = value;
@@ -96,7 +94,7 @@ private:
};


template<ptrdiff_t N, typename... T>
template<int N, typename... T>
class arraynd : protected array<T...>
{
public:
@@ -130,7 +128,7 @@ public:

fix_sizes();

ptrdiff_t pos = 0;
int pos = 0;

for (auto inner_initializer : initializer)
inner_initializer.FillValues(&super::operator[](0), pos++, &m_sizes[N - 2]);
@@ -169,7 +167,7 @@ public:
#endif

/* Proxy to access slices */
template<typename ARRAY_TYPE, ptrdiff_t L = N - 1>
template<typename ARRAY_TYPE, int L = N - 1>
class slice
{
public:
@@ -232,43 +230,34 @@ public:

/* Resize the array.
* FIXME: data gets scrambled; should we care? */
inline void set_size(vec_t<ptrdiff_t, N> sizes, element_t e = element_t())
inline void resize(vec_t<int, N> sizes, element_t e = element_t())
{
m_sizes = sizes;
fix_sizes(e);
resize_s(vec_t<ptrdiff_t, N>(sizes), e);
}

#if PTRDIFF_MAX > INT_MAX
inline void set_size(vec_t<int, N> sizes, element_t e = element_t())
inline void resize_s(vec_t<ptrdiff_t, N> sizes, element_t e = element_t())
{
m_sizes = vec_t<ptrdiff_t, N>(sizes);
m_sizes = sizes;
fix_sizes(e);
}
#endif

inline vec_t<ptrdiff_t, N> get_size() const
inline vec_t<int, N> size() const
{
return this->m_sizes;
return vec_t<int, N>(this->m_sizes);
}

/* TODO: remove these legacy functions one day */
inline vec_t<ptrdiff_t, N> GetSize() const { return get_size(); }
inline void SetSize(vec_t<ptrdiff_t, N> sizes, element_t e = element_t())
{
return set_size(sizes, e);
}
#if PTRDIFF_MAX > INT_MAX
inline void SetSize(vec_t<int, N> sizes, element_t e = element_t())
inline vec_t<ptrdiff_t, N> size_s() const
{
return set_size(sizes, e);
return this->m_sizes;
}
#endif

public:
inline element_t *data() { return super::data(); }
inline element_t const *data() const { return super::data(); }
inline ptrdiff_t count() const { return super::count(); }
inline ptrdiff_t bytes() const { return super::bytes(); }
inline int count() const { return super::count(); }
inline int bytes() const { return super::bytes(); }
inline ptrdiff_t count_s() const { return super::count_s(); }
inline ptrdiff_t bytes_s() const { return super::bytes_s(); }

private:
inline void fix_sizes(element_t e = element_t())
@@ -280,7 +269,7 @@ private:
for (int i = 0; i < N; ++i)
total_size *= m_sizes[i];

this->Resize(total_size, e);
this->array<T...>::resize(total_size, e);
}

vec_t<ptrdiff_t, N> m_sizes;


+ 1
- 1
src/lol/math/noise/simplex.h View File

@@ -362,7 +362,7 @@ private:
{
int best_delta = -1;
float best_t2 = t;
for (int i = 0; i < deltas.Count(); ++i)
for (int i = 0; i < deltas.count(); ++i)
{
float t2 = eval(v + e * deltas[i]);
if (abs(t2) > abs(best_t2))


+ 13
- 13
src/lol/math/polynomial.h View File

@@ -32,7 +32,7 @@ struct polynomial
/* A constant polynomial */
explicit inline polynomial(T const &a)
{
m_coefficients.Push(a);
m_coefficients.push(a);
reduce_degree();
}

@@ -40,7 +40,7 @@ struct polynomial
explicit polynomial(std::initializer_list<T> const &init)
{
for (auto a : init)
m_coefficients.Push(a);
m_coefficients.push(a);

reduce_degree();
}
@@ -60,7 +60,7 @@ struct polynomial

polynomial<T> ret;
for (int k = 0; k <= n; ++k)
ret.m_coefficients.Push(T(coeff(k, n)));
ret.m_coefficients.push(T(coeff(k, n)));
return ret;
}

@@ -68,11 +68,11 @@ struct polynomial
* degree -1 on purpose. */
inline int degree() const
{
return (int)m_coefficients.Count() - 1;
return (int)m_coefficients.count() - 1;
}

/* Set one of the polynomial’s coefficients */
void set(ptrdiff_t n, T const &a)
void set(int n, T const &a)
{
ASSERT(n >= 0);

@@ -80,7 +80,7 @@ struct polynomial
return;

while (n > degree())
m_coefficients.Push(T(0));
m_coefficients.push(T(0));

m_coefficients[n] = a;
reduce_degree();
@@ -102,7 +102,7 @@ struct polynomial
/* No need to reduce the degree after deriving. */
polynomial<T> ret;
for (int i = 1; i <= degree(); ++i)
ret.m_coefficients.Push(m_coefficients[i] * T(i));
ret.m_coefficients.push(m_coefficients[i] * T(i));
return ret;
}

@@ -183,7 +183,7 @@ struct polynomial
{
polynomial<T> ret;
for (auto a : m_coefficients)
ret.m_coefficients.Push(-a);
ret.m_coefficients.push(-a);
return ret;
}

@@ -196,7 +196,7 @@ struct polynomial
m_coefficients[i] += p[i];

for (int i = min_degree + 1; i <= p.degree(); ++i)
m_coefficients.Push(p[i]);
m_coefficients.push(p[i]);

reduce_degree();
return *this;
@@ -258,7 +258,7 @@ struct polynomial
{
int n = p.degree() + q.degree();
for (int i = 0; i <= n; ++i)
ret.m_coefficients.Push(T(0));
ret.m_coefficients.push(T(0));

for (int i = 0; i <= p.degree(); ++i)
for (int j = 0; j <= q.degree(); ++j)
@@ -288,7 +288,7 @@ struct polynomial
quotient.set(n, remainder.leading());
for (int i = 0; i < p.degree(); ++i)
remainder.m_coefficients[n + i] -= remainder.leading() * p[i];
remainder.m_coefficients.Pop();
remainder.m_coefficients.pop();
}

return ret;
@@ -298,8 +298,8 @@ private:
/* Enforce the non-zero leading coefficient rule. */
void reduce_degree()
{
while (m_coefficients.Count() && m_coefficients.Last() == T(0))
m_coefficients.Pop();
while (m_coefficients.count() && m_coefficients.last() == T(0))
m_coefficients.pop();
}

/* The polynomial coefficients */


+ 7
- 4
src/lolimgui.cpp View File

@@ -18,6 +18,8 @@

using namespace lol;

#define Line(s) ((s) + "\n")

//-----------------------------------------------------------------------------
LolImGui::LolImGui()
{
@@ -54,7 +56,8 @@ LolImGui::LolImGui()
imgui_pixel.SetMainCode(String() +
Line(String()
+ "vec4 col = " + pass_color + " * texture2D(" + m_texture + ", " + pass_texcoord + ");")
+ Line("if (col.a == 0.0) discard; ")
+ Line(String()
+ "if (col.a == 0.0) discard; ")
+ Line(out_pixel + " = col;")
);

@@ -227,7 +230,7 @@ void LolImGui::TickGame(float seconds)
cursor.y = 1.f - cursor.y;
cursor *= video_size;
io.MousePos = ImVec2(cursor.x, cursor.y);
Log::Debug(Line("%.2f/%.2f"), io.MousePos.x, io.MousePos.y);
Log::Debug("%.2f/%.2f\n", io.MousePos.x, io.MousePos.y);
io.MouseWheel = m_controller->GetAxisValue(LolImGuiAxis::Scroll);

for (int i = LolImGuiKey::MOUSE_KEY_START; i < LolImGuiKey::MOUSE_KEY_END; ++i)
@@ -240,11 +243,11 @@ void LolImGui::TickGame(float seconds)
case LolImGuiKey::Focus:
if (m_controller->IsKeyReleased(i))
{
Log::Debug(Line("Not focused ....."));
Log::Debug("Not focused .....\n");
io.MousePos = ImVec2(-1.f, -1.f);
}
else
Log::Debug(Line("Focused !!"));
Log::Debug("Focused !!\n");
break;
}
}


+ 7
- 8
src/lolua/baselua.cpp View File

@@ -50,17 +50,16 @@ class LuaBaseData
char const *filename = var;// lua_tostring(l, 1);
int status = LUA_ERRFILE;

array<String> pathlist = System::GetPathList(filename);
File f;
for (int i = 0; i < pathlist.Count(); ++i)
for (auto candidate : System::GetPathList(filename))
{
f.Open(pathlist[i], FileAccess::Read);
f.Open(candidate, FileAccess::Read);
if (f.IsValid())
{
String s = f.ReadString();
f.Close();

Log::Debug("loading Lua file %s\n", pathlist[i].C());
Log::Debug("loading Lua file %s\n", candidate.C());
status = LuaDoCode(l, s);
break;
}
@@ -115,7 +114,7 @@ void Loader::Store(LuaState* l, Lolua::Loader* loader)
}
void Loader::Release(LuaState* l, Lolua::Loader* loader)
{
for (ptrdiff_t i = 0; i < g_loaders.count(); ++i)
for (int i = 0; i < g_loaders.count(); ++i)
{
if (g_loaders[i].m1 == l && g_loaders[i].m2 == loader)
{
@@ -128,11 +127,11 @@ void Loader::Release(LuaState* l, Lolua::Loader* loader)
//Store lua object --------------------------------------------------------
void Loader::StoreObject(LuaState* l, Object* obj)
{
for (ptrdiff_t i = 0; i < g_loaders.count(); ++i)
for (auto loader : g_loaders)
{
if (g_loaders[i].m1 == l)
if (loader.m1 == l)
{
g_loaders[i].m2->Store(obj);
loader.m2->Store(obj);
return;
}
}


+ 16
- 16
src/lolua/baselua.h View File

@@ -63,29 +63,29 @@ struct ObjectLib
m_method_name = class_name + "_inst";

m_statics = statics;
if (m_statics.Count() == 0
|| m_statics.Last().name != nullptr
|| m_statics.Last().func != nullptr)
m_statics.Push({ nullptr, nullptr });
if (m_statics.count() == 0
|| m_statics.last().name != nullptr
|| m_statics.last().func != nullptr)
m_statics.push({ nullptr, nullptr });

m_methods = methods;
if (m_methods.Count() == 0
|| m_methods.Last().name != nullptr
|| m_methods.Last().func != nullptr)
m_methods.Push({ nullptr, nullptr });
if (m_methods.count() == 0
|| m_methods.last().name != nullptr
|| m_methods.last().func != nullptr)
m_methods.push({ nullptr, nullptr });

for (ClassVar const& cv : variables)
{
if (cv.name && cv.get && cv.set)
{
m_variables.Push({ cv.name, cv.get, cv.set });
m_variables.push({ cv.name, cv.get, cv.set });
}
}
if (m_variables.Count() == 0
|| variables.Last().name != nullptr
|| variables.Last().get != nullptr
|| variables.Last().set != nullptr)
m_variables.Push(ClassVarStr());
if (m_variables.count() == 0
|| variables.last().name != nullptr
|| variables.last().get != nullptr
|| variables.last().set != nullptr)
m_variables.push(ClassVarStr());
}
String m_class_name = "";
String m_static_name = "";
@@ -201,9 +201,9 @@ public:
template <typename TLuaClass>
static const char* GetMethodName() { return GetLib<TLuaClass>()->m_method_name.C(); }
template <typename TLuaClass>
static const ClassMethod* GetStaticMethods() { return GetLib<TLuaClass>()->m_statics.Data(); }
static const ClassMethod* GetStaticMethods() { return GetLib<TLuaClass>()->m_statics.data(); }
template <typename TLuaClass>
static const ClassMethod* GetInstanceMethods() { return GetLib<TLuaClass>()->m_methods.Data(); }
static const ClassMethod* GetInstanceMethods() { return GetLib<TLuaClass>()->m_methods.data(); }
template <typename TLuaClass>
static const array<ObjectLib::ClassVarStr>& GetVariables() { return GetLib<TLuaClass>()->m_variables; }



+ 10
- 10
src/math/vector.cpp View File

@@ -17,7 +17,7 @@ namespace lol

#define LOL_PRINTF_TOSTRING(type, ...) \
template<> void type::printf() const { Log::Debug(__VA_ARGS__); } \
template<> String type::tostring() const { return String::Printf(__VA_ARGS__); }
template<> String type::tostring() const { return String::format(__VA_ARGS__); }

LOL_PRINTF_TOSTRING(vec2, "[ %6.6f %6.6f ]\n", x, y);
LOL_PRINTF_TOSTRING(ivec2, "[ %i %i ]\n", x, y);
@@ -40,8 +40,8 @@ template<> String mat2::tostring() const
{
mat2 const &p = *this;

return String::Printf("[ %6.6f %6.6f\n", p[0][0], p[1][0]) +
String::Printf(" %6.6f %6.6f ]\n", p[0][1], p[1][1]);
return String::format("[ %6.6f %6.6f\n", p[0][0], p[1][0]) +
String::format(" %6.6f %6.6f ]\n", p[0][1], p[1][1]);
}

template<> void mat3::printf() const
@@ -57,9 +57,9 @@ template<> String mat3::tostring() const
{
mat3 const &p = *this;

return String::Printf("[ %6.6f %6.6f %6.6f\n", p[0][0], p[1][0], p[2][0]) +
String::Printf(" %6.6f %6.6f %6.6f\n", p[0][1], p[1][1], p[2][1]) +
String::Printf(" %6.6f %6.6f %6.6f ]\n", p[0][2], p[1][2], p[2][2]);
return String::format("[ %6.6f %6.6f %6.6f\n", p[0][0], p[1][0], p[2][0]) +
String::format(" %6.6f %6.6f %6.6f\n", p[0][1], p[1][1], p[2][1]) +
String::format(" %6.6f %6.6f %6.6f ]\n", p[0][2], p[1][2], p[2][2]);
}

template<> void mat4::printf() const
@@ -80,13 +80,13 @@ template<> String mat4::tostring() const
{
mat4 const &p = *this;

return String::Printf("[ %6.6f %6.6f %6.6f %6.6f\n",
return String::format("[ %6.6f %6.6f %6.6f %6.6f\n",
p[0][0], p[1][0], p[2][0], p[3][0]) +
String::Printf(" %6.6f %6.6f %6.6f %6.6f\n",
String::format(" %6.6f %6.6f %6.6f %6.6f\n",
p[0][1], p[1][1], p[2][1], p[3][1]) +
String::Printf(" %6.6f %6.6f %6.6f %6.6f\n",
String::format(" %6.6f %6.6f %6.6f %6.6f\n",
p[0][2], p[1][2], p[2][2], p[3][2]) +
String::Printf(" %6.6f %6.6f %6.6f %6.6f ]\n",
String::format(" %6.6f %6.6f %6.6f %6.6f ]\n",
p[0][3], p[1][3], p[2][3], p[3][3]);
}



+ 11
- 11
src/mesh/mesh.cpp View File

@@ -30,22 +30,22 @@ Mesh::~Mesh()

void Mesh::Render(Scene& scene, mat4 const &matrix)
{
//if (scene.HasPrimitiveRenderer(this) < m_submeshes.Count())
//if (scene.HasPrimitiveRenderer(this) < m_submeshes.count())
{
for (int i = 0; i < m_submeshes.Count(); ++i)
for (int i = 0; i < m_submeshes.count(); ++i)
scene.AddPrimitiveRenderer(this, new PrimitiveMesh(m_submeshes[i], matrix));
}
}

void Mesh::Render()
{
for (int i = 0; i < m_submeshes.Count(); ++i)
for (int i = 0; i < m_submeshes.count(); ++i)
m_submeshes[i]->Render();
}

void Mesh::SetMaterial(Shader *shader)
{
for (int i = 0; i < m_submeshes.Count(); ++i)
for (int i = 0; i < m_submeshes.count(); ++i)
m_submeshes[i]->SetShader(shader);
}

@@ -91,8 +91,8 @@ void SubMesh::SetVertexDeclaration(VertexDeclaration *vdecl)

void SubMesh::SetVertexBuffer(int index, VertexBuffer* vbo)
{
while (index >= m_vbos.Count())
m_vbos.Push(nullptr);
while (index >= m_vbos.count())
m_vbos.push(nullptr);

m_vbos[index] = vbo;
}
@@ -104,14 +104,14 @@ void SubMesh::SetIndexBuffer(IndexBuffer* ibo)

void SubMesh::AddTexture(const char* name, Texture* texture)
{
m_textures.Push(String(name), texture);
m_textures.push(String(name), texture);
}

void SubMesh::Render()
{
int vertex_count = 0;

for (int i = 0; i < m_vbos.Count(); ++i)
for (int i = 0; i < m_vbos.count(); ++i)
{
ShaderAttrib attribs[12];

@@ -130,12 +130,12 @@ void SubMesh::Render()
attribs[j] = m_shader->GetAttribLocation(usage, usages[usage_index]++);
}

vertex_count = (int)m_vbos[i]->GetSize() / m_vdecl->GetStream(i).GetSize();
vertex_count = m_vbos[i]->GetSize() / m_vdecl->GetStream(i).GetSize();

m_vdecl->SetStream(m_vbos[i], attribs);
}

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
ShaderUniform u_tex = m_shader->GetUniformLocation(m_textures[i].m1.C());
@@ -145,7 +145,7 @@ void SubMesh::Render()
m_ibo->Bind();
m_vdecl->Bind();
m_vdecl->DrawIndexedElements(MeshPrimitive::Triangles, 0, 0, vertex_count,
0, (int)m_ibo->GetSize() / sizeof(uint16_t));
0, m_ibo->GetSize() / sizeof(uint16_t));
m_vdecl->Unbind();
m_ibo->Unbind();
}


+ 2
- 0
src/mesh/mesh.h View File

@@ -61,9 +61,11 @@ public:

//TODO: Not sure about the name
void Render(Scene& scene, mat4 const &matrix);

protected:
void Render();

public:
array<class SubMesh *> m_submeshes;
};



+ 1
- 1
src/mesh/primitivemesh.cpp View File

@@ -72,7 +72,7 @@ void PrimitiveMesh::Render(Scene& scene, PrimitiveSource* primitive)
/* FIXME: GetUniform("blabla") is costly */
for (auto l : lights)
light_data << vec4(l->GetPosition(), (float)l->GetType()) << l->GetColor();
while (light_data.Count() < LOL_MAX_LIGHT_COUNT)
while (light_data.count() < LOL_MAX_LIGHT_COUNT)
light_data << vec4::zero << vec4::zero;

ShaderUniform u_lights = shader->GetUniformLocation("u_lights");


+ 14
- 13
src/messageservice.cpp View File

@@ -42,14 +42,14 @@ MessageService::MessageService()

MessageService::~MessageService()
{
m_bucket.Empty();
m_bucket.empty();
}

//Setup/Destroy
void MessageService::Setup()
{
g_messageservice = new MessageService();
g_messageservice->m_bucket.Resize(MessageBucket::MAX);
g_messageservice->m_bucket.resize(MessageBucket::MAX);
}

void MessageService::Destroy()
@@ -63,7 +63,7 @@ bool MessageService::Send(MessageBucket id, const String& message)
{
if (g_messageservice)
{
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.Count());
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.count());
return g_messageservice->Send(id, message.C());
}
return false;
@@ -73,7 +73,7 @@ bool MessageService::Send(MessageBucket id, const char* message)
{
if (g_messageservice)
{
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.Count());
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.count());
MessageService& g = *g_messageservice;
array<MessageList>& bucket = g.m_bucket[id.ToScalar()];
bucket << MessageList(time(nullptr), String(message));
@@ -87,7 +87,7 @@ bool MessageService::FetchFirst(MessageBucket id, String& message)
{
if (g_messageservice)
{
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.Count());
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.count());
time_t timestamp;
return g_messageservice->FetchFirst(id, message, timestamp);
}
@@ -98,15 +98,15 @@ bool MessageService::FetchFirst(MessageBucket id, String& message, time_t& times
{
if (g_messageservice)
{
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.Count());
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.count());
MessageService& g = *g_messageservice;
array<MessageList>& bucket = g.m_bucket[id.ToScalar()];

if (bucket.Count())
if (bucket.count())
{
message = bucket[0].m_message;
timestamp = bucket[0].m_timestamp;
bucket.Remove(0);
bucket.remove(0);
return true;
}
}
@@ -118,7 +118,7 @@ bool MessageService::FetchAll(MessageBucket id, String& message)
{
if (g_messageservice)
{
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.Count());
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.count());
time_t timestamp;
return g_messageservice->FetchAll(id, message, timestamp);
}
@@ -129,17 +129,17 @@ bool MessageService::FetchAll(MessageBucket id, String& message, time_t& first_t
{
if (g_messageservice)
{
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.Count());
ASSERT(0 <= id.ToScalar() && id.ToScalar() < g_messageservice->m_bucket.count());
MessageService& g = *g_messageservice;
array<MessageList>& bucket = g.m_bucket[id.ToScalar()];
message = String("");

if (bucket.Count())
if (bucket.count())
{
first_timestamp = bucket[0].m_timestamp;
for (int i = 0; i < bucket.Count(); ++i)
for (int i = 0; i < bucket.count(); ++i)
message += bucket[i].m_message;
bucket.Empty();
bucket.empty();
return true;
}
}
@@ -147,3 +147,4 @@ bool MessageService::FetchAll(MessageBucket id, String& message, time_t& first_t
}

} /* namespace lol */


+ 5
- 5
src/platform/d3d9/d3d9input.cpp View File

@@ -53,7 +53,7 @@ D3d9Input::D3d9Input()
if (XInputGetState(i, &state) != ERROR_SUCCESS)
continue;
// TODO: we can put more friendly name here, such as LeftAxisX, ButtonX...
InputDeviceInternal* stick = new InputDeviceInternal(String::Printf("Joystick%d", i+1).C());
InputDeviceInternal* stick = new InputDeviceInternal(String::format("Joystick%d", i+1).C());

stick->AddAxis(g_name_xbox_axis_left_x.C());
stick->AddAxis(g_name_xbox_axis_left_y.C());
@@ -77,7 +77,7 @@ D3d9Input::D3d9Input()
stick->AddKey(g_name_xbox_key_x.C());
stick->AddKey(g_name_xbox_key_y.C());

m_data->m_joysticks.Push(i, stick);
m_data->m_joysticks.push(i, stick);
}
#endif

@@ -88,10 +88,10 @@ D3d9Input::~D3d9Input()
{
#if defined USE_XINPUT
/* Unregister all the joysticks we added */
while (m_data->m_joysticks.Count())
while (m_data->m_joysticks.count())
{
delete m_data->m_joysticks[0].m2;
m_data->m_joysticks.Remove(0);
m_data->m_joysticks.remove(0);
}
#endif
delete m_data;
@@ -102,7 +102,7 @@ void D3d9Input::TickGame(float seconds)
Entity::TickGame(seconds);

#if defined USE_XINPUT
for (int i = 0; i < m_data->m_joysticks.Count(); i++)
for (int i = 0; i < m_data->m_joysticks.count(); i++)
{
XINPUT_STATE state;
if (XInputGetState(m_data->m_joysticks[i].m1, &state) != ERROR_SUCCESS)


+ 8
- 8
src/platform/nacl/nacl-instance.cpp View File

@@ -80,11 +80,11 @@ bool NaClInstance::Init(uint32_t argc,
main_mutex.Lock();
char *env[] = { nullptr };
Args arglist(argc, const_cast<char **>(argv), const_cast<char **>(env));
main_queue.Push(&arglist);
main_queue.push(&arglist);
m_main_thread = new thread(MainRun, nullptr);
/* Push so that only MainSignal() can unblock us */
main_queue.Push(nullptr);
main_queue.Push(nullptr);
main_queue.push(nullptr);
main_queue.push(nullptr);
main_mutex.Unlock();

// My timer callback
@@ -101,7 +101,7 @@ bool NaClInstance::Init(uint32_t argc,
void * NaClInstance::MainRun(void *data)
{
UNUSED(data);
Args *arglist = main_queue.Pop();
Args *arglist = main_queue.pop();

/* Call the user's main() function. One of these will work. */
lol_nacl_main();
@@ -114,8 +114,8 @@ void * NaClInstance::MainRun(void *data)
void NaClInstance::MainSignal()
{
/* FIXME: find something more elegant. */
main_queue.Pop();
main_queue.Pop();
main_queue.pop();
main_queue.pop();
}

void NaClInstance::HandleMessage(const pp::Var& message)
@@ -173,7 +173,7 @@ void NaClInputData::Tick(float seconds)
ivec2 mousepos = m_mouse->GetCursorPixelPos(0);
vec2 mousepos_prev = vec2(mousepos);
/* Handle keyboard and WM events */
for (int i = 0; i < m_input_events.Count(); ++i)
for (int i = 0; i < m_input_events.count(); ++i)
{
pp::InputEvent &e = m_input_events[i];
switch (e.GetType())
@@ -223,7 +223,7 @@ void NaClInputData::Tick(float seconds)
}
}
}
m_input_events.Empty();
m_input_events.empty();

/* Handle mouse input */
if (IsViewportSizeValid())


+ 5
- 4
src/platform/sdl/sdlapp.cpp View File

@@ -198,13 +198,14 @@ void SdlAppDisplay::Disable()
}

#if USE_SDL
ptrdiff_t SceneDisplay::GetPhysicalCount()
int SceneDisplay::GetPhysicalCount()
{
return (ptrdiff_t)SDL_GetNumVideoDisplays();
return SDL_GetNumVideoDisplays();
}
const char* SceneDisplay::GetPhysicalName(ptrdiff_t index)

const char* SceneDisplay::GetPhysicalName(int index)
{
return SDL_GetDisplayName((int)index);
return SDL_GetDisplayName(index);
}
#elif USE_OLD_SDL && USE_D3D9
// Not implemented


+ 14
- 14
src/platform/sdl/sdlinput.cpp View File

@@ -74,7 +74,7 @@ static int sdl12_to_scancode(int ch, int sc)
case id: return String(str);
# include "input/keys.h"
default:
Log::Error(Line("ScanCodeToText unknown scancode %0d."), sc);
Log::Error("ScanCodeToText unknown scancode %0d\n", sc);
}
return String();
}
@@ -87,7 +87,7 @@ static int sdl12_to_scancode(int ch, int sc)
case id: return String(#name);
# include "input/keys.h"
default:
Log::Error(Line("ScanCodeToText unknown scancode %0d."), sc);
Log::Error("ScanCodeToText unknown scancode %0d\n", sc);
}
return String();
}
@@ -187,13 +187,13 @@ SdlInput::SdlInput(int app_w, int app_h, int screen_w, int screen_h)
continue;
}

InputDeviceInternal* stick = new InputDeviceInternal(String::Printf("Joystick%d", i+1).C());
InputDeviceInternal* stick = new InputDeviceInternal(String::format("Joystick%d", i+1).C());
for (int j = 0; j < SDL_JoystickNumAxes(sdlstick); ++j)
stick->AddAxis(String::Printf("Axis%d", j + 1).C());
stick->AddAxis(String::format("Axis%d", j + 1).C());
for (int j = 0; j < SDL_JoystickNumButtons(sdlstick); ++j)
stick->AddKey(String::Printf("Button%d", j + 1).C());
stick->AddKey(String::format("Button%d", j + 1).C());

m_data->m_joysticks.Push(sdlstick, stick);
m_data->m_joysticks.push(sdlstick, stick);
}
# endif //EMSCRIPTEN
#endif
@@ -205,11 +205,11 @@ SdlInput::~SdlInput()
{
#if (USE_SDL || USE_OLD_SDL) && !EMSCRIPTEN
/* Unregister all the joysticks we added */
while (m_data->m_joysticks.Count())
while (m_data->m_joysticks.count())
{
SDL_JoystickClose(m_data->m_joysticks[0].m1);
delete m_data->m_joysticks[0].m2;
m_data->m_joysticks.Remove(0);
m_data->m_joysticks.remove(0);
}
#endif
delete m_data;
@@ -237,7 +237,7 @@ void SdlInputData::Tick(float seconds)
/* Pump all joystick events because no event is coming to us. */
# if SDL_FORCE_POLL_JOYSTICK && !EMSCRIPTEN
SDL_JoystickUpdate();
for (int j = 0; j < m_joysticks.Count(); j++)
for (int j = 0; j < m_joysticks.count(); j++)
{
for (int i = 0; i < SDL_JoystickNumButtons(m_joysticks[j].m1); i++)
m_joysticks[j].m2->SetKey(i, SDL_JoystickGetButton(m_joysticks[j].m1, i) != 0);
@@ -290,7 +290,7 @@ void SdlInputData::Tick(float seconds)
}
m_keyboard->SetKey(sc2, !m_keyboard->GetKey(sc2));
/* DEBUG STUFF
Log::Info(Line("Repeat: 0x%02x : %s/%s/%s/%i"),
Log::Info("Repeat: 0x%02x : %s/%s/%s/%i\n",
(int)m_keyboard, ScanCodeToText(sc2).C(), ScanCodeToName(sc2).C(),
m_keyboard->GetKey(sc2) ? "up" : "down", event.key.repeat);
*/
@@ -311,13 +311,13 @@ void SdlInputData::Tick(float seconds)
&& !m_keyboard->GetKey(SDLOL_LAlt))
{
String str = ScanCodeToText(sc);
str.CaseChange(m_keyboard->GetKey(SDLOL_CapsLockStatus)
^ (m_keyboard->GetKey(SDLOL_RShift)
|| m_keyboard->GetKey(SDLOL_LShift)));
str.case_change(m_keyboard->GetKey(SDLOL_CapsLockStatus)
^ (m_keyboard->GetKey(SDLOL_RShift)
|| m_keyboard->GetKey(SDLOL_LShift)));
m_keyboard->AddText(str);
}
/* DEBUG STUFF
Log::Info(Line("Repeat: 0x%02x : %s/%s/%s/%i"),
Log::Info("Repeat: 0x%02x : %s/%s/%s/%i\n",
(int)m_keyboard, ScanCodeToText(sc).C(), ScanCodeToName(sc).C(),
event.type == SDL_KEYDOWN ? "up" : "down", event.key.repeat);
*/


+ 4
- 4
src/platform/xbox/xboxinput.cpp View File

@@ -51,7 +51,7 @@ XboxInput::XboxInput()
Stick *stick = Input::CreateStick();
stick->SetAxisCount(4);
stick->SetButtonCount(16);
m_data->m_joysticks.Push(i, stick);
m_data->m_joysticks.push(i, stick);
}
#endif

@@ -62,10 +62,10 @@ XboxInput::~XboxInput()
{
#if defined _XBOX
/* Unregister all the joysticks we added */
while (m_data->m_joysticks.Count())
while (m_data->m_joysticks.count())
{
Input::DestroyStick(m_data->m_joysticks[0].m2);
m_data->m_joysticks.Remove(0);
m_data->m_joysticks.remove(0);
}
#endif
delete m_data;
@@ -81,7 +81,7 @@ void XboxInput::TickDraw(float seconds, Scene &scene)
Entity::TickDraw(seconds, scene);

#if defined _XBOX
for (int i = 0; i < m_data->m_joysticks.Count(); i++)
for (int i = 0; i < m_data->m_joysticks.count(); i++)
{
XINPUT_STATE state;
if (XInputGetState(m_data->m_joysticks[i].m1, &state) != ERROR_SUCCESS)


+ 2
- 3
src/sample.cpp View File

@@ -56,10 +56,9 @@ Sample::Sample(char const *path)
data->m_name = String("<sample> ") + path;

#if defined USE_SDL_MIXER
array<String> pathlist = System::GetPathList(path);
for (int i = 0; i < pathlist.Count(); ++i)
for (auto candidate : System::GetPathList(path))
{
data->m_chunk = Mix_LoadWAV(pathlist[i].C());
data->m_chunk = Mix_LoadWAV(candidate.C());
if (data->m_chunk)
break;
}


+ 48
- 44
src/scene.cpp View File

@@ -56,11 +56,12 @@ void SceneDisplay::Add(SceneDisplay* display)
{
m_scene_displays << display;
}
ptrdiff_t SceneDisplay::GetCount()

int SceneDisplay::GetCount()
{
return m_scene_displays.count();
}
SceneDisplay* SceneDisplay::GetDisplay(ptrdiff_t index)
SceneDisplay* SceneDisplay::GetDisplay(int index)
{
ASSERT(0 <= index && index < m_scene_displays.count());
return m_scene_displays[index];
@@ -69,7 +70,7 @@ void SceneDisplay::DestroyAll()
{
for (SceneDisplay* display : m_scene_displays)
delete display;
m_scene_displays.Empty();
m_scene_displays.empty();
}

/* ------------------------------------------------ */
@@ -206,29 +207,32 @@ void Scene::AddNew(ivec2 size)
{
Scene::g_scenes << new Scene(size);
}

void Scene::DestroyScene(Scene* scene)
{
Scene::g_scenes.remove_item(scene);
delete scene;
}

void Scene::DestroyAll()
{
while (Scene::g_scenes.count())
delete Scene::g_scenes.pop();
}
ptrdiff_t Scene::GetCount()

int Scene::GetCount()
{
return g_scenes.count();
}

//-----------------------------------------------------------------------------
bool Scene::IsReady(ptrdiff_t index)
bool Scene::IsReady(int index)
{
return 0 <= index && index < g_scenes.count() && !!g_scenes[index];
}

//-----------------------------------------------------------------------------
Scene& Scene::GetScene(ptrdiff_t index)
Scene& Scene::GetScene(int index)
{
ASSERT(0 <= index && index < g_scenes.count() && !!g_scenes[index], "Trying to get a non-existent scene");
return *g_scenes[index];
@@ -251,9 +255,9 @@ Camera* Scene::GetCamera(int cam_idx)
{
ASSERT(!!data, "Trying to access a non-ready scene");

return (0 <= cam_idx && cam_idx < data->m_camera_stack.Count()) ?
return (0 <= cam_idx && cam_idx < data->m_camera_stack.count()) ?
data->m_camera_stack[cam_idx] :
data->m_camera_stack.Last();
data->m_camera_stack.last();
}

//-----------------------------------------------------------------------------
@@ -262,8 +266,8 @@ int Scene::PushCamera(Camera *cam)
ASSERT(!!data, "Trying to access a non-ready scene");

Ticker::Ref(cam);
data->m_camera_stack.Push(cam);
return (int)data->m_camera_stack.Count() - 1;
data->m_camera_stack.push(cam);
return (int)data->m_camera_stack.count() - 1;
}

//-----------------------------------------------------------------------------
@@ -273,12 +277,12 @@ void Scene::PopCamera(Camera *cam)

/* Parse from the end because that’s probably where we’ll find
* our camera first. */
for (ptrdiff_t i = data->m_camera_stack.Count(); i--;)
for (int i = data->m_camera_stack.count(); i--;)
{
if (data->m_camera_stack[i] == cam)
{
Ticker::Unref(cam);
data->m_camera_stack.Remove(i);
data->m_camera_stack.remove(i);
return;
}
}
@@ -303,22 +307,22 @@ void Scene::Reset()
array<uintptr_t> keys = data->m_prim_renderers.keys();
for (uintptr_t key : keys)
{
for (ptrdiff_t idx = 0; idx < data->m_prim_renderers[key].count(); ++idx)
for (int idx = 0; idx < data->m_prim_renderers[key].count(); ++idx)
if (data->m_prim_renderers[key][idx]->m_fire_and_forget)
ReleasePrimitiveRenderer(idx--, key);
}

for (int i = 0; i < data->m_tile_bufs.Count(); i++)
for (int i = 0; i < data->m_tile_bufs.count(); i++)
delete data->m_tile_bufs[i];
data->m_tile_bufs.Empty();
data->m_tile_bufs.empty();

data->m_lights.Empty();
data->m_lights.empty();
}

//---- Primitive source stuff -------------------------------------------------
ptrdiff_t Scene::HasPrimitiveSource(uintptr_t key)
int Scene::HasPrimitiveSource(uintptr_t key)
{
ptrdiff_t count;
int count;
SceneData::m_prim_mutex.lock();
{
count = SceneData::m_prim_sources[key].count();
@@ -326,9 +330,9 @@ ptrdiff_t Scene::HasPrimitiveSource(uintptr_t key)
SceneData::m_prim_mutex.unlock();
return count;
}
ptrdiff_t Scene::AddPrimitiveSource(uintptr_t key, PrimitiveSource* source)
int Scene::AddPrimitiveSource(uintptr_t key, PrimitiveSource* source)
{
ptrdiff_t count;
int count;
SceneData::m_prim_mutex.lock();
{
count = SceneData::m_prim_sources[key].count();
@@ -337,7 +341,7 @@ ptrdiff_t Scene::AddPrimitiveSource(uintptr_t key, PrimitiveSource* source)
SceneData::m_prim_mutex.unlock();
return count;
}
void Scene::SetPrimitiveSource(ptrdiff_t index, uintptr_t key, PrimitiveSource* source)
void Scene::SetPrimitiveSource(int index, uintptr_t key, PrimitiveSource* source)
{
ASSERT(source);
ASSERT(index < 0);
@@ -355,7 +359,7 @@ void Scene::SetPrimitiveSource(ptrdiff_t index, uintptr_t key, PrimitiveSource*
//Delete old AFTER having released the lock
if (old) delete old;
}
void Scene::ReleasePrimitiveSource(ptrdiff_t index, uintptr_t key)
void Scene::ReleasePrimitiveSource(int index, uintptr_t key)
{
PrimitiveSource* old = nullptr;
SceneData::m_prim_mutex.lock();
@@ -387,7 +391,7 @@ void Scene::ReleaseAllPrimitiveSource(uintptr_t key)
}

//---- Primitive renderer stuff -----------------------------------------------
ptrdiff_t Scene::HasPrimitiveRenderer(uintptr_t key)
int Scene::HasPrimitiveRenderer(uintptr_t key)
{
return data->m_prim_renderers[key].count();
}
@@ -396,7 +400,7 @@ void Scene::AddPrimitiveRenderer(uintptr_t key, PrimitiveRenderer* renderer)
renderer->m_fire_and_forget = true;
data->m_prim_renderers[key].push(renderer);
}
void Scene::SetPrimitiveRenderer(ptrdiff_t index, uintptr_t key, PrimitiveRenderer* renderer)
void Scene::SetPrimitiveRenderer(int index, uintptr_t key, PrimitiveRenderer* renderer)
{
ASSERT(renderer);
ASSERT(index < 0);
@@ -409,7 +413,7 @@ void Scene::SetPrimitiveRenderer(ptrdiff_t index, uintptr_t key, PrimitiveRender
data->m_prim_renderers[key].resize(index + 1);
data->m_prim_renderers[key][index] = renderer;
}
void Scene::ReleasePrimitiveRenderer(ptrdiff_t index, uintptr_t key)
void Scene::ReleasePrimitiveRenderer(int index, uintptr_t key)
{
ASSERT(0 <= index && index < data->m_prim_renderers[key].count());
ASSERT(data->m_prim_renderers[key][index]);
@@ -441,9 +445,9 @@ void Scene::AddTile(TileSet *tileset, int id, vec3 pos, int o, vec2 scale, float
t.angle = angle;

if (tileset->GetPalette())
data->m_palettes.Push(t);
data->m_palettes.push(t);
else
data->m_tiles.Push(t);
data->m_tiles.push(t);
}

//-----------------------------------------------------------------------------
@@ -491,7 +495,7 @@ void Scene::AddLine(vec3 a, vec3 b, vec4 color)
{
ASSERT(!!data, "Trying to access a non-ready scene");

data->m_lines.Push(a, b, color,
data->m_lines.push(a, b, color,
data->m_new_line_time, data->m_new_line_mask, false, false);
}

@@ -500,7 +504,7 @@ void Scene::AddLight(Light *l)
{
ASSERT(!!data, "Trying to access a non-ready scene");

data->m_lights.Push(l);
data->m_lights.push(l);
}

//-----------------------------------------------------------------------------
@@ -545,7 +549,7 @@ void Scene::RenderPrimitives()
array<uintptr_t> keys = data->m_prim_renderers.keys();
for (uintptr_t key : keys)
{
for (ptrdiff_t idx = 0; idx < data->m_prim_renderers[key].count(); ++idx)
for (int idx = 0; idx < data->m_prim_renderers[key].count(); ++idx)
{
/* TODO: Not sure if thread compliant */
data->m_prim_renderers[key][idx]->Render(*this, idx < SceneData::m_prim_sources[key].count() ? SceneData::m_prim_sources[key][idx] : nullptr);
@@ -561,7 +565,7 @@ void Scene::RenderTiles() // XXX: rename to Blit()
RenderContext rc;

/* Early test if nothing needs to be rendered */
if (!data->m_tiles.Count() && !data->m_palettes.Count())
if (!data->m_tiles.count() && !data->m_palettes.count())
return;

rc.SetDepthFunc(DepthFunc::LessOrEqual);
@@ -585,7 +589,7 @@ void Scene::RenderTiles() // XXX: rename to Blit()
Shader *shader = (p == 0) ? data->m_tile_shader : data->m_palette_shader;
array<Tile>& tiles = (p == 0) ? data->m_tiles : data->m_palettes;

if (tiles.Count() == 0)
if (tiles.count() == 0)
continue;

ShaderUniform uni_mat, uni_tex, uni_pal, uni_texsize;
@@ -606,10 +610,10 @@ void Scene::RenderTiles() // XXX: rename to Blit()
uni_pal = data->m_palette_shader->GetUniformLocation("u_palette");
uni_texsize = shader->GetUniformLocation("u_texsize");

for (int buf = 0, i = 0, n; i < tiles.Count(); i = n, buf += 2)
for (int buf = 0, i = 0, n; i < tiles.count(); i = n, buf += 2)
{
/* Count how many quads will be needed */
for (n = i + 1; n < tiles.Count(); n++)
for (n = i + 1; n < tiles.count(); n++)
if (tiles[i].tileset != tiles[n].tileset)
break;

@@ -619,8 +623,8 @@ void Scene::RenderTiles() // XXX: rename to Blit()
VertexBuffer *vb2 = new VertexBuffer(6 * (n - i) * sizeof(vec2));
vec2 *texture = (vec2 *)vb2->Lock(0, 0);

data->m_tile_bufs.Push(vb1);
data->m_tile_bufs.Push(vb2);
data->m_tile_bufs.push(vb1);
data->m_tile_bufs.push(vb2);

for (int j = i; j < n; j++)
{
@@ -662,7 +666,7 @@ void Scene::RenderTiles() // XXX: rename to Blit()
tiles[i].tileset->Unbind();
}

tiles.Empty();
tiles.empty();

shader->Unbind();
}
@@ -682,7 +686,7 @@ void Scene::RenderLines(float seconds) // XXX: rename to Blit()

RenderContext rc;

if (!data->m_lines.Count())
if (!data->m_lines.count())
return;

rc.SetDepthFunc(DepthFunc::LessOrEqual);
@@ -690,13 +694,13 @@ void Scene::RenderLines(float seconds) // XXX: rename to Blit()
rc.SetBlendEquation(BlendEquation::Add, BlendEquation::Max);
rc.SetAlphaFunc(AlphaFunc::GreaterOrEqual, 0.01f);

int linecount = (int)data->m_lines.Count();
int linecount = (int)data->m_lines.count();

if (!data->m_line_shader)
data->m_line_shader = Shader::Create(LOLFX_RESOURCE_NAME(line));

array<vec4, vec4, vec4, vec4> buff;
buff.Resize(linecount);
buff.resize(linecount);
int real_linecount = 0;
mat4 const inv_view_proj = inverse(GetCamera()->GetProjection() * GetCamera()->GetView());
for (int i = 0; i < linecount; i++)
@@ -712,13 +716,13 @@ void Scene::RenderLines(float seconds) // XXX: rename to Blit()
data->m_lines[i].m4 -= seconds;
if (data->m_lines[i].m4 < 0.f)
{
data->m_lines.RemoveSwap(i--);
data->m_lines.remove_swap(i--);
linecount--;
}
}
VertexBuffer *vb = new VertexBuffer(buff.Bytes());
VertexBuffer *vb = new VertexBuffer(buff.bytes());
float *vertex = (float *)vb->Lock(0, 0);
memcpy(vertex, buff.Data(), buff.Bytes());
memcpy(vertex, buff.data(), buff.bytes());
vb->Unlock();

data->m_line_shader->Bind();
@@ -741,7 +745,7 @@ void Scene::RenderLines(float seconds) // XXX: rename to Blit()
data->m_line_vdecl->Unbind();
data->m_line_shader->Unbind();

//data->m_lines.Empty();
//data->m_lines.empty();
delete vb;
}



+ 21
- 21
src/scene.h View File

@@ -70,13 +70,13 @@ public:

/* TODO: Should that be there or in Video ? */
static void Add(SceneDisplay* display);
static ptrdiff_t GetCount();
static SceneDisplay* GetDisplay(ptrdiff_t index = 0);
static int GetCount();
static SceneDisplay* GetDisplay(int index = 0);
static void DestroyAll();

/* Implement these in the platform section */
static ptrdiff_t GetPhysicalCount();
static const char* GetPhysicalName(ptrdiff_t index = 0);
static int GetPhysicalCount();
static const char* GetPhysicalName(int index = 0);

//protected:
virtual void Enable();
@@ -106,9 +106,9 @@ private: //Private because I don't know if we should have it
private:
static void DestroyAll();
public:
static ptrdiff_t GetCount();
static bool IsReady(ptrdiff_t index = 0);
static Scene& GetScene(ptrdiff_t index = 0);
static int GetCount();
static bool IsReady(int index = 0);
static Scene& GetScene(int index = 0);

public:
//TODO: don't like the name
@@ -127,16 +127,16 @@ public:
# define _KEY_IDX (uintptr_t)key /* TOUKY: I don't like that. hash should be fixed to handle these custom stuff */
/* ============================== */
private:
ptrdiff_t HasPrimitiveSource(uintptr_t key);
ptrdiff_t AddPrimitiveSource(uintptr_t key, class PrimitiveSource* source);
void SetPrimitiveSource(ptrdiff_t index, uintptr_t key, class PrimitiveSource* source);
void ReleasePrimitiveSource(ptrdiff_t index, uintptr_t key);
int HasPrimitiveSource(uintptr_t key);
int AddPrimitiveSource(uintptr_t key, class PrimitiveSource* source);
void SetPrimitiveSource(int index, uintptr_t key, class PrimitiveSource* source);
void ReleasePrimitiveSource(int index, uintptr_t key);
void ReleaseAllPrimitiveSource(uintptr_t key);
public:
/* === Primitive source stuff === */
/* Returns the number of primitive source set to the given entity */
template <typename T>
ptrdiff_t HasPrimitiveSource(T* key)
int HasPrimitiveSource(T* key)
{
ASSERT(key);
return HasPrimitiveSource(_KEY_IDX);
@@ -144,7 +144,7 @@ public:
/* Add a primitive sources linked to the given entity
* Returns the slot number */
template <typename T>
ptrdiff_t AddPrimitiveSource(T* key, class PrimitiveSource* source)
int AddPrimitiveSource(T* key, class PrimitiveSource* source)
{
ASSERT(key);
return AddPrimitiveSource(_KEY_IDX, source);
@@ -153,14 +153,14 @@ public:
* Deletes the old one
* The slot is kept even if source == nullptr */
template <typename T>
void SetPrimitiveSource(ptrdiff_t index, T* key, class PrimitiveSource* source)
void SetPrimitiveSource(int index, T* key, class PrimitiveSource* source)
{
ASSERT(key);
SetPrimitiveSource(index, _KEY_IDX, source);
}
/* Remove primitive source at index set to the given entity */
template <typename T>
void ReleasePrimitiveSource(ptrdiff_t index, T* key)
void ReleasePrimitiveSource(int index, T* key)
{
ASSERT(key);
ReleasePrimitiveSource(index, _KEY_IDX);
@@ -174,16 +174,16 @@ public:
}

private:
ptrdiff_t HasPrimitiveRenderer(uintptr_t key);
int HasPrimitiveRenderer(uintptr_t key);
void AddPrimitiveRenderer(uintptr_t key, class PrimitiveRenderer* renderer);
void SetPrimitiveRenderer(ptrdiff_t index, uintptr_t key, class PrimitiveRenderer* renderer);
void ReleasePrimitiveRenderer(ptrdiff_t index, uintptr_t key);
void SetPrimitiveRenderer(int index, uintptr_t key, class PrimitiveRenderer* renderer);
void ReleasePrimitiveRenderer(int index, uintptr_t key);
void ReleaseAllPrimitiveRenderer(uintptr_t key);
public:
/* === Primitive renderer stuff === */
/* Returns the number of primitive renderer set to the given entity */
template <typename T>
ptrdiff_t HasPrimitiveRenderer(T* key)
int HasPrimitiveRenderer(T* key)
{
ASSERT(key);
return HasPrimitiveRenderer(_KEY_IDX);
@@ -201,14 +201,14 @@ public:
* Deletes the old one
* Will assert if renderer == nullptr */
template <typename T>
void SetPrimitiveRenderer(ptrdiff_t index, T* key, class PrimitiveRenderer* renderer)
void SetPrimitiveRenderer(int index, T* key, class PrimitiveRenderer* renderer)
{
ASSERT(key && renderer);
SetPrimitiveRenderer(index, _KEY_IDX, renderer);
}
/* Remove primitive renderer at index set to the given entity */
template <typename T>
void ReleasePrimitiveRenderer(ptrdiff_t index, T* key)
void ReleasePrimitiveRenderer(int index, T* key)
{
ASSERT(key);
ReleasePrimitiveRenderer(index, _KEY_IDX);


+ 17
- 17
src/sys/file.cpp View File

@@ -120,20 +120,20 @@ class FileData
String ReadString()
{
array<uint8_t> buf;
buf.Resize(BUFSIZ);
buf.resize(BUFSIZ);
String ret;
while (IsValid())
{
int done = Read(&buf[0], (int)buf.Count());
int done = Read(&buf[0], buf.count());

if (done <= 0)
break;

int oldsize = (int)ret.Count();
ret.Resize(oldsize + done);
int oldsize = ret.count();
ret.resize(oldsize + done);
memcpy(&ret[oldsize], &buf[0], done);

buf.Resize(buf.Count() * 3 / 2);
buf.resize(buf.count() * 3 / 2);
}
return ret;
}
@@ -148,7 +148,7 @@ class FileData
if (done <= 0)
return -1;

return (int)done;
return done;
#else
return 0;
#endif
@@ -156,7 +156,7 @@ class FileData

int WriteString(const String &buf)
{
return Write((uint8_t const *)buf.C(), (int)buf.Count());
return Write((uint8_t const *)buf.C(), buf.count());
}

long int GetPosFromStart()
@@ -355,7 +355,7 @@ class DirectoryData
#elif defined(_WIN32)
m_directory = directory;
String filter = m_directory + String("*");
filter.Replace('/', '\\', true);
filter.replace('/', '\\', true);
WIN32_FIND_DATA FindFileData;
m_handle = FindFirstFile(filter.C(), &FindFileData);
stat(directory.C(), &m_stat);
@@ -399,7 +399,7 @@ class DirectoryData
/* FIXME: not implemented */
#elif defined(_WIN32)
String filter = m_directory + String("*");
filter.Replace('/', '\\', true);
filter.replace('/', '\\', true);
WIN32_FIND_DATA find_data;
HANDLE handle = FindFirstFile(filter.C(), &find_data);
bool file_valid = (handle != INVALID_HANDLE_VALUE);
@@ -426,7 +426,7 @@ class DirectoryData
#elif HAVE_STDIO_H
/* FIXME: not implemented */
#endif
return ((files && files->Count()) || (directories && directories->Count()));
return ((files && files->count()) || (directories && directories->count()));
}

inline bool IsValid() const
@@ -539,14 +539,14 @@ bool Directory::GetContent(array<String>* files, array<Directory>* directories)
bool found_some = m_data->GetContentList(&sfiles, &sdirectories);

if (directories)
for (int i = 0; i < sdirectories.Count(); i++)
directories->Push(Directory(m_name + sdirectories[i]));
for (int i = 0; i < sdirectories.count(); i++)
directories->push(Directory(m_name + sdirectories[i]));

if (files)
for (int i = 0; i < sfiles.Count(); i++)
files->Push(m_name + sfiles[i]);
for (int i = 0; i < sfiles.count(); i++)
files->push(m_name + sfiles[i]);

return (files && files->Count()) || (directories || directories->Count());
return (files && files->count()) || (directories || directories->count());
}

//--
@@ -589,7 +589,7 @@ String Directory::GetCurrent()
TCHAR buff[MAX_PATH * 2];
GetCurrentDirectory(MAX_PATH, buff);
result = buff;
result.Replace('\\', '/', true);
result.replace('\\', '/', true);
#elif HAVE_STDIO_H
/* FIXME: not implemented */
#endif
@@ -603,7 +603,7 @@ bool Directory::SetCurrent(String directory)
/* FIXME: not implemented */
#elif defined(_WIN32)
String result = directory;
result.Replace('/', '\\', true);
result.replace('/', '\\', true);
return !!SetCurrentDirectory(result.C());
#elif HAVE_STDIO_H
/* FIXME: not implemented */


+ 11
- 11
src/sys/init.cpp View File

@@ -86,24 +86,24 @@ void Init(int argc, char *argv[],
* add current directory in case we were launched from another place.
*/

if (!got_rootdir && projectdir.Count() && solutiondir.Count())
if (!got_rootdir && projectdir.count() && solutiondir.count())
{
/* This data dir is for standalone executables */
String rootdir = binarydir;
if (rootdir.Count() && rootdir.Last() != SEPARATOR)
if (rootdir.count() && rootdir.last() != SEPARATOR)
rootdir += SEPARATOR;
AddDataDir(rootdir);

/* This data dir is for engine stuff */
rootdir = solutiondir;
if (rootdir.Count() && rootdir.Last() != SEPARATOR)
if (rootdir.count() && rootdir.last() != SEPARATOR)
rootdir += SEPARATOR;
rootdir += "../src/"; /* FIXME: use SEPARATOR? */
AddDataDir(rootdir);

/* This data dir is for project-specific stuff */
rootdir = projectdir;
if (rootdir.Count() && rootdir.Last() != SEPARATOR)
if (rootdir.count() && rootdir.last() != SEPARATOR)
rootdir += SEPARATOR;
AddDataDir(rootdir);

@@ -119,13 +119,13 @@ void Init(int argc, char *argv[],
/* First climb back the hierarchy to get to the engine root and
* add a data dir for engine stuff. */
String rootdir = binarydir;
if (rootdir.Count() && rootdir.Last() != SEPARATOR)
if (rootdir.count() && rootdir.last() != SEPARATOR)
rootdir += SEPARATOR;
for (int i = 1; i < sourcesubdir.Count(); ++i)
for (int i = 1; i < sourcesubdir.count(); ++i)
{
if ((sourcesubdir[i] == SEPARATOR
&& sourcesubdir[i - 1] != SEPARATOR)
|| i == sourcesubdir.Count() - 1)
|| i == sourcesubdir.count() - 1)
rootdir += "../";
}
rootdir += "src/";
@@ -139,8 +139,8 @@ void Init(int argc, char *argv[],
}

Log::Debug("binary dir: “%s”\n", binarydir.C());
for (int i = 0; i < data_dir.Count(); ++i)
Log::Debug("data dir %d/%d: “%s”\n", i + 1, data_dir.Count(),
for (int i = 0; i < data_dir.count(); ++i)
Log::Debug("data dir %d/%d: “%s”\n", i + 1, data_dir.count(),
data_dir[i].C());
}

@@ -157,10 +157,10 @@ array<String> GetPathList(String const &file)
{
array<String> ret;

for (int i = 0; i < data_dir.Count(); ++i)
for (int i = 0; i < data_dir.count(); ++i)
ret << data_dir[i] + file;

if (ret.Count() == 0)
if (ret.count() == 0)
ret << file;

return ret;


+ 3
- 3
src/sys/threadtypes.cpp View File

@@ -23,8 +23,8 @@ void DefaultThreadManager::AddJob(ThreadJob* job)
bool DefaultThreadManager::GetWorkResult(array<ThreadJob*>& results)
{
results += m_job_result;
m_job_result.Empty();
return results.Count() > 0;
m_job_result.empty();
return results.count() > 0;
}

//FileUpdateTesterJob ---------------------------------------------------------
@@ -219,7 +219,7 @@ void AsyncImageLoader::TreatResult(ThreadJob* result)
Image* src = m_images[job->GetPath()];
m_images.remove(job->GetPath());
src->Copy(job->GetImage());
m_loaded_images.PushUnique(src);
m_loaded_images.push_unique(src);
}
else
{


+ 27
- 26
src/t/base/array.cpp View File

@@ -36,10 +36,10 @@ lolunit_declare_fixture(ArrayTest)
lolunit_declare_test(ArrayPush)
{
array<int> a;
a.Push(0);
a.Push(1);
a.Push(2);
a.Push(3);
a.push(0);
a.push(1);
a.push(2);
a.push(3);

lolunit_assert_equal(a[0], 0);
lolunit_assert_equal(a[1], 1);
@@ -101,18 +101,18 @@ lolunit_declare_fixture(ArrayTest)
{
array<int> a;
a << 0 << 1 << 2 << 3;
a.Remove(1);
a.remove(1);

lolunit_assert_equal(a.Count(), 3);
lolunit_assert_equal(a.count(), 3);
lolunit_assert_equal(a[0], 0);
lolunit_assert_equal(a[1], 2);
lolunit_assert_equal(a[2], 3);

array<int> b;
b << 0 << 1 << 2 << 3;
b.Remove(-2);
b.remove(-2);

lolunit_assert_equal(b.Count(), 3);
lolunit_assert_equal(b.count(), 3);
lolunit_assert_equal(b[0], 0);
lolunit_assert_equal(b[1], 1);
lolunit_assert_equal(b[2], 3);
@@ -122,18 +122,18 @@ lolunit_declare_fixture(ArrayTest)
{
array<int> a;
a << 0 << 1 << 2 << 3;
a.RemoveSwap(1);
a.remove_swap(1);

lolunit_assert_equal(a.Count(), 3);
lolunit_assert_equal(a.count(), 3);
lolunit_assert_equal(a[0], 0);
lolunit_assert_equal(a[1], 3);
lolunit_assert_equal(a[2], 2);

array<int> b;
b << 0 << 1 << 2 << 3;
b.Remove(1, 2);
b.remove(1, 2);

lolunit_assert_equal(b.Count(), 2);
lolunit_assert_equal(b.count(), 2);
lolunit_assert_equal(b[0], 0);
lolunit_assert_equal(b[1], 3);
}
@@ -141,7 +141,7 @@ lolunit_declare_fixture(ArrayTest)
lolunit_declare_test(EightElements)
{
array<int, long, float, double, unsigned, char, bool, void *> a;
a.Push(1, 2, 3.f, 4.0, 5, 'a', true, 0);
a.push(1, 2, 3.f, 4.0, 5, 'a', true, 0);

lolunit_assert_equal(a[0].m1, 1);
lolunit_assert_equal(a[0].m2, 2);
@@ -156,9 +156,10 @@ lolunit_declare_fixture(ArrayTest)
lolunit_declare_test(ArraySwap)
{
array<int, int> a;
a.Push(10, 20);
a.Push(30, 40);
a.Swap(0, 1);
a.push(10, 20);
a.push(30, 40);

std::swap(a[0], a[1]);

lolunit_assert_equal(30, a[0].m1);
lolunit_assert_equal(40, a[0].m2);
@@ -171,18 +172,18 @@ lolunit_declare_fixture(ArrayTest)
array<int> a;
a << 1 << 2;

a.Insert(5, 0);
a.insert(5, 0);
lolunit_assert_equal(5, a[0]);
lolunit_assert_equal(1, a[1]);
lolunit_assert_equal(2, a[2]);

a.Insert(6, 3);
a.insert(6, 3);
lolunit_assert_equal(5, a[0]);
lolunit_assert_equal(1, a[1]);
lolunit_assert_equal(2, a[2]);
lolunit_assert_equal(6, a[3]);

a.Insert(7, 2);
a.insert(7, 2);
lolunit_assert_equal(5, a[0]);
lolunit_assert_equal(1, a[1]);
lolunit_assert_equal(7, a[2]);
@@ -193,17 +194,17 @@ lolunit_declare_fixture(ArrayTest)
lolunit_declare_test(ArrayInsertTuple)
{
array<int, float, 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(6.f, b[0].m2);

b.Insert(1, 8, 9.f, "hi there");
b.insert(1, 8, 9.f, "hi there");
lolunit_assert_equal(5, b[0].m1);
lolunit_assert_equal(6.f, b[0].m2);
lolunit_assert_equal(8, b[1].m1);
lolunit_assert_equal(9.f, b[1].m2);

b.Insert(1, 4, 5.f, "anyone home?");
b.insert(1, 4, 5.f, "anyone home?");
lolunit_assert_equal(5, b[0].m1);
lolunit_assert_equal(6.f, b[0].m2);
lolunit_assert_equal(4, b[1].m1);
@@ -253,7 +254,7 @@ lolunit_declare_fixture(ArrayTest)
{
array<TrackedObj> a;

a.Push(TrackedObj());
a.push(TrackedObj());
}
lolunit_assert_equal(TrackedObj::m_ctor, TrackedObj::m_dtor);

@@ -262,9 +263,9 @@ lolunit_declare_fixture(ArrayTest)
{
array<TrackedObj> a;

a.Resize(2);
a.Resize(4);
a.Resize(1);
a.resize(2);
a.resize(4);
a.resize(1);
}
lolunit_assert_equal(TrackedObj::m_ctor, TrackedObj::m_dtor);
}


+ 8
- 8
src/t/base/map.cpp View File

@@ -67,10 +67,10 @@ lolunit_declare_fixture(MapTest)
a << i;
m[i] = -1;
}
for (int i = 0; i < a.Count(); i++)
for (int i = 0; i < a.count(); i++)
m[i] = i;
a.Shuffle();
for (int i = 0; i < a.Count(); i++)
for (int i = 0; i < a.count(); i++)
m.remove(a[i]);
}

@@ -81,13 +81,13 @@ lolunit_declare_fixture(MapTest)

for (int i = 0; i < 20; i++)
{
a << String::Printf("test_str_%i", i);
m[a.Last()] = -1;
a << String::format("test_str_%i", i);
m[a.last()] = -1;
}
for (int i = 0; i < a.Count(); i++)
for (int i = 0; i < a.count(); i++)
m[a[i]] = i;
a.Shuffle();
for (int i = 0; i < a.Count(); i++)
for (int i = 0; i < a.count(); i++)
m.remove(a[i]);
}

@@ -284,10 +284,10 @@ lolunit_declare_fixture(MapTest)
"Cyberano_Ns:Feather17" };

map<String, int> bones_map;
for (int i = 0; i < bones.Count(); ++i)
for (int i = 0; i < bones.count(); ++i)
bones_map[bones[i]] = i;

for (int i = 0; i < bones.Count(); ++i)
for (int i = 0; i < bones.count(); ++i)
lolunit_assert_equal(bones_map[bones[i]], i);
}
};


+ 19
- 19
src/t/base/string.cpp View File

@@ -151,12 +151,12 @@ lolunit_declare_fixture(string_test)
lolunit_declare_test(string_printf)
{
String s1 = "3a";
String s2 = String::Printf("%d%x", 3, 10);
String s2 = String::format("%d%x", 3, 10);

lolunit_assert(s1 == s2);

String s3 = "abc 3";
String s4 = String::Printf("abc %d", 3);
String s4 = String::format("abc %d", 3);

lolunit_assert(s3 == s4);
}
@@ -177,14 +177,14 @@ lolunit_declare_fixture(string_test)
lolunit_declare_test(index_of)
{
String s1 = "Hello World";
ptrdiff_t i1 = s1.index_of('H');
ptrdiff_t i2 = s1.index_of('W');
ptrdiff_t i3 = s1.index_of('d');
ptrdiff_t i4 = s1.index_of("Hello");
ptrdiff_t i5 = s1.index_of("World");
ptrdiff_t i6 = s1.index_of("lo");
ptrdiff_t i7 = s1.index_of("Hello World");
ptrdiff_t i8 = s1.index_of("Sup' dude");
int i1 = s1.index_of('H');
int i2 = s1.index_of('W');
int i3 = s1.index_of('d');
int i4 = s1.index_of("Hello");
int i5 = s1.index_of("World");
int i6 = s1.index_of("lo");
int i7 = s1.index_of("Hello World");
int i8 = s1.index_of("Sup' dude");

lolunit_assert(i1 == 0);
lolunit_assert(i2 == 6);
@@ -199,15 +199,15 @@ lolunit_declare_fixture(string_test)
lolunit_declare_test(last_index_of)
{
String s1 = "Hello World";
ptrdiff_t i1 = s1.last_index_of('H');
ptrdiff_t i2 = s1.last_index_of('W');
ptrdiff_t i3 = s1.last_index_of('d');
ptrdiff_t i4 = s1.last_index_of("Hello");
ptrdiff_t i5 = s1.last_index_of("World");
ptrdiff_t i6 = s1.last_index_of("lo");
ptrdiff_t i7 = s1.last_index_of("Hello World");
ptrdiff_t i8 = s1.last_index_of("Sup' dude");
ptrdiff_t i9 = s1.last_index_of('l');
int i1 = s1.last_index_of('H');
int i2 = s1.last_index_of('W');
int i3 = s1.last_index_of('d');
int i4 = s1.last_index_of("Hello");
int i5 = s1.last_index_of("World");
int i6 = s1.last_index_of("lo");
int i7 = s1.last_index_of("Hello World");
int i8 = s1.last_index_of("Sup' dude");
int i9 = s1.last_index_of('l');

lolunit_assert(i1 == 0);
lolunit_assert(i2 == 6);


+ 2
- 2
src/t/image/color.cpp View File

@@ -95,7 +95,7 @@ lolunit_declare_fixture(ColorTest)
vec3 v2 = Color::RGBToHSV(v1);
vec3 v3 = Color::HSVToRGB(v2);

String rgb = String::Printf("[%f %f %f]", v1.r, v1.g, v1.b);
String rgb = String::format("[%f %f %f]", v1.r, v1.g, v1.b);
lolunit_set_context(&rgb[0]);

if (r != g || g != b)
@@ -117,7 +117,7 @@ lolunit_declare_fixture(ColorTest)
vec3 v2 = Color::RGBToHSL(v1);
vec3 v3 = Color::HSVToHSL(Color::RGBToHSV(v1));

String rgb = String::Printf("[%f %f %f]", v1.r, v1.g, v1.b);
String rgb = String::format("[%f %f %f]", v1.r, v1.g, v1.b);
lolunit_set_context(&rgb[0]);

/* Don’t check hue if saturation is zero. */


+ 2
- 2
src/t/math/array2d.cpp View File

@@ -49,8 +49,8 @@ lolunit_declare_fixture(Array2DTest)
{ 5, 6, 7, 8 },
{ 9, 8, 7, 6 } };

lolunit_assert_equal(a.GetSize().x, 4);
lolunit_assert_equal(a.GetSize().y, 3);
lolunit_assert_equal(a.size().x, 4);
lolunit_assert_equal(a.size().y, 3);

lolunit_assert_equal(a[0][0], 1);
lolunit_assert_equal(a[1][0], 2);


+ 3
- 3
src/t/math/array3d.cpp View File

@@ -52,9 +52,9 @@ lolunit_declare_fixture(Array3DTest)
{ -5, -6, -7, -8 },
{ -9, -8, -7, -6 } } };

lolunit_assert_equal(a.GetSize().x, 4);
lolunit_assert_equal(a.GetSize().y, 3);
lolunit_assert_equal(a.GetSize().z, 2);
lolunit_assert_equal(a.size().x, 4);
lolunit_assert_equal(a.size().y, 3);
lolunit_assert_equal(a.size().z, 2);

lolunit_assert_equal(a[0][0][0], 1);
lolunit_assert_equal(a[1][0][0], 2);


+ 7
- 7
src/t/math/arraynd.cpp View File

@@ -24,7 +24,7 @@ lolunit_declare_fixture(ArrayNDTest)
lolunit_declare_test(Array2D)
{
arraynd<2, int> a;
a.SetSize(vec_t<int, 2>(2, 2));
a.resize(vec_t<int, 2>(2, 2));

/* Non-const accessors */
a[0][0] = 1;
@@ -53,9 +53,9 @@ lolunit_declare_fixture(ArrayNDTest)

arraynd<3, int> e = { { {1, 2}, {3, 4} }, { {5, 6}, {7, 8} } };

lolunit_assert_equal(e.GetSize()[0], 2);
lolunit_assert_equal(e.GetSize()[1], 2);
lolunit_assert_equal(e.GetSize()[2], 2);
lolunit_assert_equal(e.size()[0], 2);
lolunit_assert_equal(e.size()[1], 2);
lolunit_assert_equal(e.size()[2], 2);

lolunit_assert_equal(e[0][0][0], 1);
lolunit_assert_equal(e[1][0][0], 2);
@@ -68,9 +68,9 @@ lolunit_declare_fixture(ArrayNDTest)

arraynd<3, int> f = { { {1, 2, 3, 4}, {5, 6, 7} }, { {8, 9}, {10} } };

lolunit_assert_equal(f.GetSize()[0], 4);
lolunit_assert_equal(f.GetSize()[1], 2);
lolunit_assert_equal(f.GetSize()[2], 2);
lolunit_assert_equal(f.size()[0], 4);
lolunit_assert_equal(f.size()[1], 2);
lolunit_assert_equal(f.size()[2], 2);

lolunit_assert_equal(f[0][0][0], 1);
lolunit_assert_equal(f[1][0][0], 2);


+ 1
- 0
src/t/math/matrix.cpp View File

@@ -341,6 +341,7 @@ lolunit_declare_fixture(MatrixTest)
vec4(0, 0, 1, 0),
vec4(0, -1, 0, 0),
vec4(0, 0, -1, 1));

/* Invert matrix and check that the results are finite */
mat4 m1 = inverse(m);
for (int j = 0; j < 4; ++j)


+ 4
- 4
src/t/math/polynomial.cpp View File

@@ -239,7 +239,7 @@ lolunit_declare_fixture(PolynomialTest)
polynomial<float> p { 42.f };
auto roots = p.roots();

lolunit_assert_equal(roots.Count(), 0);
lolunit_assert_equal(roots.count(), 0);
}

lolunit_declare_test(RootsDegree1)
@@ -248,7 +248,7 @@ lolunit_declare_fixture(PolynomialTest)
polynomial<float> p { -6.f, 2.f };
auto roots = p.roots();

lolunit_assert_equal(roots.Count(), 1);
lolunit_assert_equal(roots.count(), 1);
lolunit_assert_equal(roots[0], 3.f);
}

@@ -258,14 +258,14 @@ lolunit_declare_fixture(PolynomialTest)
polynomial<float> p { 81.f, -18.f, 1.f };
auto roots1 = p.roots();

lolunit_assert_equal(roots1.Count(), 1);
lolunit_assert_equal(roots1.count(), 1);
lolunit_assert_equal(roots1[0], 9.f);

/* p(x) = 42 - 20x + 2x² */
polynomial<float> q { 42.f, -20.f, 2.f };
auto roots2 = q.roots();

lolunit_assert_equal(roots2.Count(), 2);
lolunit_assert_equal(roots2.count(), 2);
lolunit_assert_equal(roots2[0], 3.f);
lolunit_assert_equal(roots2[1], 7.f);
}


+ 7
- 7
src/t/math/quat.cpp View File

@@ -20,16 +20,16 @@ lolunit_declare_fixture(QuaternionTest)
void SetUp()
{
/* Generate identity quaternions */
m_vectorpairs.Push(vec3::axis_x, vec3::axis_x);
m_vectorpairs.Push(2.f * vec3::axis_x, 3.f * vec3::axis_x);
m_vectorpairs.push(vec3::axis_x, vec3::axis_x);
m_vectorpairs.push(2.f * vec3::axis_x, 3.f * vec3::axis_x);

/* Generate 90-degree rotations */
m_vectorpairs.Push(vec3::axis_x, vec3::axis_y);
m_vectorpairs.Push(2.f * vec3::axis_x, 3.f * vec3::axis_y);
m_vectorpairs.push(vec3::axis_x, vec3::axis_y);
m_vectorpairs.push(2.f * vec3::axis_x, 3.f * vec3::axis_y);

/* Generate 180-degree rotations */
m_vectorpairs.Push(vec3::axis_x, -vec3::axis_x);
m_vectorpairs.Push(2.f * vec3::axis_x, -3.f * vec3::axis_x);
m_vectorpairs.push(vec3::axis_x, -vec3::axis_x);
m_vectorpairs.push(2.f * vec3::axis_x, -3.f * vec3::axis_x);

/* Fill array with random test values */
for (int i = 0; i < 10000; ++i)
@@ -38,7 +38,7 @@ lolunit_declare_fixture(QuaternionTest)
* vec3(rand(-1.f, 1.f), rand(-1.f, 1.f), rand(-1.f, 1.f));
vec3 v2 = lol::pow(10.f, rand(-5.f, 5.f))
* vec3(rand(-1.f, 1.f), rand(-1.f, 1.f), rand(-1.f, 1.f));
m_vectorpairs.Push(v1, v2);
m_vectorpairs.push(v1, v2);
}
}



+ 13
- 13
src/t/sys/thread.cpp View File

@@ -38,9 +38,9 @@ lolunit_declare_fixture(thread_test)
{
Timer timer;
m_done = false;
Log::Info(Line("%s: STARTED WORK"), GetName());
Log::Info("%s: STARTED WORK\n", GetName());
timer.Wait(2.f);
Log::Info(Line("%s: ENDED WORK"), GetName());
Log::Info("%s: ENDED WORK\n", GetName());
m_done = true;
return true;
}
@@ -81,15 +81,15 @@ lolunit_declare_fixture(thread_test)

void AddJob(ThreadJob* job)
{
Log::Info(Line("%s DISPATCHING JOB %s"), GetName(), job->GetName());
Log::Info("%s DISPATCHING JOB %s\n", GetName(), job->GetName());
DispatchJob(job);
}
bool GetWorkResult(array<ThreadJob*>& results)
{
results += m_job_result;
m_job_result.Empty();
Log::Info(Line("%s GETWORKRESULT (%i)"), GetName(), results.count());
return results.Count() > 0;
m_job_result.empty();
Log::Info("%s GETWORKRESULT (%i)\n", GetName(), results.count());
return results.count() > 0;
}

virtual void TickGame(float seconds)
@@ -99,7 +99,7 @@ lolunit_declare_fixture(thread_test)
case UnitTestStatus::NOT_QUEUED:
if (!!GetDispatchCount())
{
Log::Info(Line("%s TICKGAME %s"), GetName(), m_status.ToString().C());
Log::Info("%s TICKGAME %s\n", GetName(), m_status.ToString().C());
m_status = UnitTestStatus::QUEUED;
}
break;
@@ -110,14 +110,14 @@ lolunit_declare_fixture(thread_test)
if (GetDispatchedCount())
#endif
{
Log::Info(Line("%s TICKGAME %s"), GetName(), m_status.ToString().C());
Log::Info("%s TICKGAME %s\n", GetName(), m_status.ToString().C());
m_status = UnitTestStatus::RETRIEVED;
}
break;
case UnitTestStatus::RETRIEVED:
if (m_job_result.count() == 4)
{
Log::Info(Line("%s TICKGAME %s"), GetName(), m_status.ToString().C());
Log::Info("%s TICKGAME %s\n", GetName(), m_status.ToString().C());
m_status = UnitTestStatus::DONE;
}
break;
@@ -151,10 +151,10 @@ lolunit_declare_fixture(thread_test)

lolunit_declare_test(threads)
{
Log::Info(Line("%s START"), m_manager.GetName());
Log::Info("%s START\n", m_manager.GetName());
//Start threads manager
m_manager.Start();
Log::Info(Line("%s STARTED"), m_manager.GetName());
Log::Info("%s STARTED\n", m_manager.GetName());

UnitTestJob job[4];
lolunit_assert_equal(0, m_manager.Test_GetDispatchCount());
@@ -187,10 +187,10 @@ lolunit_declare_fixture(thread_test)
m_manager.GetWorkResult(results);
lolunit_assert_equal(4, results.count());

Log::Info(Line("%s STOP"), m_manager.GetName());
Log::Info("%s STOP\n", m_manager.GetName());
//Stop manager
m_manager.Stop();
Log::Info(Line("%s STOPPED"), m_manager.GetName());
Log::Info("%s STOPPED\n", m_manager.GetName());
}

lolunit_declare_test(queue_try_push)


+ 1
- 1
src/text.cpp View File

@@ -60,7 +60,7 @@ void Text::SetText(String const &text)

void Text::SetInt(int val)
{
data->m_text = String::Printf("%i", val);
data->m_text = String::format("%i", val);
}

void Text::SetPos(vec3 pos)


+ 29
- 29
src/ticker.cpp View File

@@ -41,9 +41,9 @@ public:
~TickerData()
{
ASSERT(nentities == 0,
"still %td entities in ticker\n", nentities);
ASSERT(m_autolist.Count() == 0,
"still %ti autoreleased entities\n", m_autolist.Count());
"still %d entities in ticker\n", nentities);
ASSERT(m_autolist.count() == 0,
"still %d autoreleased entities\n", m_autolist.count());
Log::Debug("%d frames required to quit\n", frame - quitframe);

#if LOL_FEATURE_THREADS
@@ -58,8 +58,8 @@ private:
/* Entity management */
array<Entity *> m_todolist, m_autolist;
array<Entity *> m_list[Entity::ALLGROUP_END];
array<ptrdiff_t> m_scenes[Entity::ALLGROUP_END];
ptrdiff_t nentities;
array<int> m_scenes[Entity::ALLGROUP_END];
int nentities;

/* Fixed framerate management */
int frame, recording;
@@ -121,11 +121,11 @@ void Ticker::Ref(Entity *entity)
/* Get the entity out of the m_autorelease list. This is usually
* very fast since the last entry in autolist is the last
* registered entity. */
for (ptrdiff_t i = data->m_autolist.Count(); i--; )
for (int i = data->m_autolist.count(); i--; )
{
if (data->m_autolist[i] == entity)
{
data->m_autolist.RemoveSwap(i);
data->m_autolist.remove_swap(i);
break;
}
}
@@ -219,7 +219,7 @@ void TickerData::GameThreadTick()
Log::Debug("%s Group %d\n",
(g < Entity::GAMEGROUP_END) ? "Game" : "Draw", g);

for (int i = 0; i < data->m_list[g].Count(); ++i)
for (int i = 0; i < data->m_list[g].count(); ++i)
{
Entity *e = data->m_list[g][i];
Log::Debug(" \\-- [%p] %s (m_ref %d, destroy %d)\n",
@@ -270,7 +270,7 @@ void TickerData::GameThreadTick()
data->panic = 2 * (data->panic + 1);

for (int g = 0; g < Entity::ALLGROUP_END && n < data->panic; ++g)
for (int i = 0; i < data->m_list[g].Count() && n < data->panic; ++i)
for (int i = 0; i < data->m_list[g].count() && n < data->panic; ++i)
{
Entity * e = data->m_list[g][i];
if (e->m_ref)
@@ -285,7 +285,7 @@ void TickerData::GameThreadTick()

#if !LOL_BUILD_RELEASE
if (n)
Log::Error("%td entities stuck after %d frames, poked %d\n",
Log::Error("%d entities stuck after %d frames, poked %d\n",
data->nentities, data->quitdelay, n);
#endif

@@ -299,7 +299,7 @@ void TickerData::GameThreadTick()
bool do_reserve = true;
for (int g = 0; g < Entity::ALLGROUP_END; ++g)
{
for (ptrdiff_t i = data->m_list[g].Count(); i--;)
for (int i = data->m_list[g].count(); i--;)
{
Entity *e = data->m_list[g][i];

@@ -307,7 +307,7 @@ void TickerData::GameThreadTick()
{
/* Game tick list:
* If entity is to be destroyed, remove it */
data->m_list[g].RemoveSwap(i);
data->m_list[g].remove_swap(i);
if (do_reserve)
{
do_reserve = false;
@@ -320,15 +320,15 @@ void TickerData::GameThreadTick()
/* Draw tick list:
* If entity is to be destroyed,
* remove it and store it. */
data->m_list[g].RemoveSwap(i);
ptrdiff_t removal_count = 0;
for (ptrdiff_t i = 0; i < Scene::GetCount(); i++)
data->m_list[g].remove_swap(i);
int removal_count = 0;
for (int j = 0; j < Scene::GetCount(); j++)
{
//If entity is concerned by this scene, add it in the list
if (Scene::GetScene(i).IsRelevant(e))
if (Scene::GetScene(j).IsRelevant(e))
removal_count++;
//Update scene index
data->m_scenes[e->m_drawgroup][i] -= removal_count;
data->m_scenes[e->m_drawgroup][j] -= removal_count;
}
if (do_reserve)
{
@@ -352,9 +352,9 @@ void TickerData::GameThreadTick()
}

/* Insert waiting objects into the appropriate lists */
while (data->m_todolist.Count())
while (data->m_todolist.count())
{
Entity *e = data->m_todolist.Last();
Entity *e = data->m_todolist.last();

//If the entity has no mask, default it
if (e->m_scene_mask == 0)
@@ -369,8 +369,8 @@ void TickerData::GameThreadTick()
if (data->m_scenes[e->m_drawgroup].count() < Scene::GetCount())
data->m_scenes[e->m_drawgroup].resize(Scene::GetCount());

ptrdiff_t added_count = 0;
for (ptrdiff_t i = 0; i < Scene::GetCount(); i++)
int added_count = 0;
for (int i = 0; i < Scene::GetCount(); i++)
{
//If entity is concerned by this scene, add it in the list
if (Scene::GetScene(i).IsRelevant(e))
@@ -390,7 +390,7 @@ void TickerData::GameThreadTick()
/* Tick objects for the game loop */
for (int g = Entity::GAMEGROUP_BEGIN; g < Entity::GAMEGROUP_END && !data->quit /* Stop as soon as required */; ++g)
{
for (ptrdiff_t i = 0; i < data->m_list[g].Count() && !data->quit /* Stop as soon as required */; ++i)
for (int i = 0; i < data->m_list[g].count() && !data->quit /* Stop as soon as required */; ++i)
{
Entity *e = data->m_list[g][i];
if (!e->m_destroy)
@@ -426,15 +426,15 @@ void TickerData::DrawThreadTick()
switch (g)
{
case Entity::DRAWGROUP_BEGIN:
for (ptrdiff_t i = 0; i < Scene::GetCount(); i++)
for (int i = 0; i < Scene::GetCount(); i++)
Scene::GetScene(i).Reset();
break;
default:
break;
}

ptrdiff_t scene_idx = 0;
for (int i = 0; i < data->m_list[g].Count() && !data->quit /* Stop as soon as required */; ++i)
int scene_idx = 0;
for (int i = 0; i < data->m_list[g].count() && !data->quit /* Stop as soon as required */; ++i)
{
//We're outside of the range of the current scene, on to the next
if (i >= data->m_scenes[g][scene_idx])
@@ -463,7 +463,7 @@ void TickerData::DrawThreadTick()
}

//Do the scene render loop
for (ptrdiff_t idx = 0; idx < Scene::GetCount() && !data->quit /* Stop as soon as required */; ++idx)
for (int idx = 0; idx < Scene::GetCount() && !data->quit /* Stop as soon as required */; ++idx)
{
Scene& scene = Scene::GetScene(idx);

@@ -571,10 +571,10 @@ int Ticker::GetFrameNum()
void Ticker::Shutdown()
{
/* We're bailing out. Release all m_autorelease objects. */
while (data->m_autolist.Count())
while (data->m_autolist.count())
{
data->m_autolist.Last()->m_ref--;
data->m_autolist.Remove(-1);
data->m_autolist.last()->m_ref--;
data->m_autolist.remove(-1);
}

data->quit = 1;


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save