From c302f5ae5f9e30a28e487e8a764d9cc31546bbea Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 29 Mar 2019 22:51:04 +0800 Subject: *rename --- source/libs/asura-lib-core/application.cpp | 26 - source/libs/asura-lib-core/application.h | 83 --- source/libs/asura-lib-core/core_config.h | 8 - source/libs/asura-lib-core/core_module.cpp | 0 source/libs/asura-lib-core/core_module.h | 11 - source/libs/asura-lib-core/font/glyph.cpp | 0 source/libs/asura-lib-core/font/glyph.h | 0 source/libs/asura-lib-core/font/string.cpp | 376 ----------- source/libs/asura-lib-core/font/string.hpp | 594 ---------------- source/libs/asura-lib-core/font/string.inl | 29 - source/libs/asura-lib-core/font/ttf.cpp | 0 source/libs/asura-lib-core/font/ttf.h | 17 - source/libs/asura-lib-core/font/utf.hpp | 720 -------------------- source/libs/asura-lib-core/font/utf.inl | 752 --------------------- .../asura-lib-core/graphics/binding/_canvas.cpp | 46 -- .../asura-lib-core/graphics/binding/_color.cpp | 54 -- .../asura-lib-core/graphics/binding/_color32.cpp | 86 --- .../asura-lib-core/graphics/binding/_image.cpp | 99 --- .../graphics/binding/_image_data.cpp | 70 -- .../graphics/binding/_image_decode_task.cpp | 21 - .../asura-lib-core/graphics/binding/_mesh2d.cpp | 21 - .../asura-lib-core/graphics/binding/_shader.cpp | 126 ---- .../graphics/binding/_sprite_batch.cpp | 21 - .../asura-lib-core/graphics/binding/_window.cpp | 103 --- source/libs/asura-lib-core/graphics/blend_mode.h | 17 - source/libs/asura-lib-core/graphics/canvas.cpp | 41 -- source/libs/asura-lib-core/graphics/canvas.h | 83 --- source/libs/asura-lib-core/graphics/color.cpp | 47 -- source/libs/asura-lib-core/graphics/color.h | 55 -- source/libs/asura-lib-core/graphics/color32.cpp | 39 -- source/libs/asura-lib-core/graphics/color32.h | 51 -- .../libs/asura-lib-core/graphics/color_palette.h | 0 source/libs/asura-lib-core/graphics/gif.cpp | 0 source/libs/asura-lib-core/graphics/gif.h | 20 - source/libs/asura-lib-core/graphics/gl.cpp | 25 - source/libs/asura-lib-core/graphics/gl.h | 41 -- source/libs/asura-lib-core/graphics/image.cpp | 32 - source/libs/asura-lib-core/graphics/image.h | 83 --- source/libs/asura-lib-core/graphics/image_data.cpp | 51 -- source/libs/asura-lib-core/graphics/image_data.h | 68 -- .../asura-lib-core/graphics/image_decode_task.cpp | 0 .../asura-lib-core/graphics/image_decode_task.h | 25 - .../libs/asura-lib-core/graphics/image_decoder.h | 35 - source/libs/asura-lib-core/graphics/mesh2d.cpp | 0 source/libs/asura-lib-core/graphics/mesh2d.h | 28 - .../libs/asura-lib-core/graphics/mesh2d_data.cpp | 0 source/libs/asura-lib-core/graphics/mesh2d_data.h | 0 source/libs/asura-lib-core/graphics/pixel_format.h | 91 --- .../libs/asura-lib-core/graphics/png_decoder.cpp | 19 - source/libs/asura-lib-core/graphics/png_decoder.h | 27 - source/libs/asura-lib-core/graphics/quad.cpp | 0 source/libs/asura-lib-core/graphics/quad.h | 1 - source/libs/asura-lib-core/graphics/render_state.h | 49 -- .../libs/asura-lib-core/graphics/render_target.cpp | 0 .../libs/asura-lib-core/graphics/render_target.h | 56 -- source/libs/asura-lib-core/graphics/shader.cpp | 81 --- source/libs/asura-lib-core/graphics/shader.h | 126 ---- source/libs/asura-lib-core/graphics/shape.cpp | 0 source/libs/asura-lib-core/graphics/shape.h | 0 .../libs/asura-lib-core/graphics/sprite_batch.cpp | 0 source/libs/asura-lib-core/graphics/sprite_batch.h | 28 - .../libs/asura-lib-core/graphics/stb_decoder.cpp | 65 -- source/libs/asura-lib-core/graphics/stb_decoder.h | 28 - source/libs/asura-lib-core/graphics/texture.cpp | 26 - source/libs/asura-lib-core/graphics/texture.h | 68 -- source/libs/asura-lib-core/input/clipboard.cpp | 0 source/libs/asura-lib-core/input/clipboard.h | 37 - source/libs/asura-lib-core/input/cursor.cpp | 0 source/libs/asura-lib-core/input/cursor.defs | 25 - source/libs/asura-lib-core/input/cursor.h | 54 -- .../libs/asura-lib-core/input/cursor_impl_sdl.cpp | 0 source/libs/asura-lib-core/input/cursor_impl_sdl.h | 0 source/libs/asura-lib-core/input/event.h | 45 -- source/libs/asura-lib-core/input/input_device.hpp | 31 - source/libs/asura-lib-core/input/joypad.h | 0 source/libs/asura-lib-core/input/keyboard.cpp | 0 source/libs/asura-lib-core/input/keyboard.defs | 482 ------------- source/libs/asura-lib-core/input/keyboard.h | 73 -- source/libs/asura-lib-core/input/mouse.cpp | 0 source/libs/asura-lib-core/input/mouse.defs | 7 - source/libs/asura-lib-core/input/mouse.h | 56 -- source/libs/asura-lib-core/profiler/stats.cpp | 0 source/libs/asura-lib-core/profiler/stats.h | 0 source/libs/asura-lib-core/threading/coroutine.cpp | 0 source/libs/asura-lib-core/threading/coroutine.h | 31 - source/libs/asura-lib-core/threading/thread.cpp | 0 source/libs/asura-lib-core/threading/thread.h | 53 -- .../asura-lib-core/threading/thread_impl_posix.cpp | 0 .../asura-lib-core/threading/thread_impl_posix.h | 0 .../asura-lib-core/threading/thread_impl_sdl.cpp | 0 .../asura-lib-core/threading/thread_impl_sdl.h | 0 .../asura-lib-core/threading/thread_impl_std.cpp | 0 .../asura-lib-core/threading/thread_impl_std.h | 0 .../asura-lib-core/threading/thread_impl_win32.cpp | 0 .../asura-lib-core/threading/thread_impl_win32.h | 25 - .../libs/asura-lib-core/threading/thread_task.cpp | 0 source/libs/asura-lib-core/threading/thread_task.h | 25 - source/libs/asura-lib-core/time/timer.cpp | 0 source/libs/asura-lib-core/time/timer.h | 0 source/libs/asura-lib-core/type.h | 11 - source/libs/asura-lib-core/window/window.cpp | 50 -- source/libs/asura-lib-core/window/window.h | 90 --- .../asura-lib-core/window/window_impl_glew.cpp | 0 .../libs/asura-lib-core/window/window_impl_glew.h | 0 .../asura-lib-core/window/window_impl_glut.cpp | 0 .../libs/asura-lib-core/window/window_impl_glut.h | 0 .../libs/asura-lib-core/window/window_impl_sdl.cpp | 0 .../libs/asura-lib-core/window/window_impl_sdl.h | 0 source/libs/asura-lib-framework/compile.bat | 0 source/libs/asura-lib-framework/compile.sh | 0 source/libs/asura-lib-framework/main.cpp | 0 .../scripts/ai/behavior_tree.lua | 0 .../asura-lib-framework/scripts/ai/state_graph.lua | 11 - .../scripts/ai/state_machine.lua | 6 - .../asura-lib-framework/scripts/audio/sound.lua | 9 - .../asura-lib-framework/scripts/audio/source.lua | 22 - source/libs/asura-lib-framework/scripts/class.lua | 17 - .../libs/asura-lib-framework/scripts/component.lua | 30 - source/libs/asura-lib-framework/scripts/entity.lua | 114 ---- .../scripts/filesystem/animation_loader.lua | 10 - .../scripts/filesystem/asset.lua | 20 - .../scripts/filesystem/entity_loader.lua | 5 - .../scripts/filesystem/image_loader.lua | 13 - .../scripts/filesystem/loader.lua | 12 - .../scripts/filesystem/material_loader.lua | 7 - .../scripts/filesystem/path_loader.lua | 9 - .../scripts/filesystem/scene_loader.lua | 7 - .../scripts/filesystem/script_loader.lua | 5 - .../scripts/filesystem/shader_loader.lua | 5 - .../scripts/filesystem/statemap_loader.lua | 7 - .../libs/asura-lib-framework/scripts/framework.lua | 21 - .../scripts/graphics/animation.lua | 15 - .../scripts/graphics/animator.lua | 33 - .../scripts/graphics/camera.lua | 21 - .../scripts/graphics/canvas.lua | 34 - .../scripts/graphics/default_shaders.lua | 5 - .../asura-lib-framework/scripts/graphics/image.lua | 40 -- .../scripts/graphics/material.lua | 48 -- .../scripts/graphics/material_manager.lua | 3 - .../scripts/graphics/mesh2d.lua | 9 - .../scripts/graphics/mesh2d_renderer.lua | 13 - .../scripts/graphics/particle_system.lua | 20 - .../scripts/graphics/renderer.lua | 19 - .../scripts/graphics/shader.lua | 75 -- .../scripts/graphics/shaderHelper.lua | 14 - .../asura-lib-framework/scripts/graphics/shape.lua | 12 - .../scripts/graphics/shape_renderer.lua | 13 - .../scripts/graphics/sprite.lua | 10 - .../scripts/graphics/sprite_batch_renderer.lua | 9 - .../scripts/graphics/sprite_renderer.lua | 14 - .../asura-lib-framework/scripts/gui/button.lua | 21 - .../libs/asura-lib-framework/scripts/gui/text.lua | 0 .../asura-lib-framework/scripts/gui/widget.lua | 14 - .../scripts/managers/scene_manager.lua | 16 - .../scripts/managers/sprite_manager.lua | 0 .../asura-lib-framework/scripts/math/curve.lua | 0 .../libs/asura-lib-framework/scripts/path/path.lua | 13 - .../scripts/path/path_calculator.lua | 12 - .../scripts/path/path_manager.lua | 0 source/libs/asura-lib-framework/scripts/scene.lua | 22 - .../libs/asura-lib-framework/scripts/transform.lua | 13 - source/libs/asura-lib-json/json.cpp | 0 source/libs/asura-lib-json/json.h | 14 - source/libs/asura-lib-json/json_module.cpp | 0 source/libs/asura-lib-json/json_module.h | 0 source/libs/asura-lib-openal/sound.cpp | 0 source/libs/asura-lib-openal/sound.h | 31 - source/libs/asura-lib-openal/sound_decode_task.cpp | 0 source/libs/asura-lib-openal/sound_decode_task.h | 25 - source/libs/asura-lib-openal/sound_decoder.cpp | 29 - source/libs/asura-lib-openal/sound_decoder.h | 30 - .../libs/asura-lib-utils/exceptions/exception.cpp | 47 -- source/libs/asura-lib-utils/exceptions/exception.h | 44 -- .../asura-lib-utils/io/binding/_compressor.cpp | 0 .../asura-lib-utils/io/binding/_data_buffer.cpp | 123 ---- source/libs/asura-lib-utils/io/binding/_file.cpp | 223 ------ .../libs/asura-lib-utils/io/binding/_file_data.cpp | 60 -- .../asura-lib-utils/io/binding/_file_system.cpp | 265 -------- .../libs/asura-lib-utils/io/binding/_io_task.cpp | 46 -- source/libs/asura-lib-utils/io/compressor.cpp | 11 - source/libs/asura-lib-utils/io/compressor.h | 30 - source/libs/asura-lib-utils/io/data_buffer.cpp | 102 --- source/libs/asura-lib-utils/io/data_buffer.h | 62 -- source/libs/asura-lib-utils/io/decoded_data.cpp | 21 - source/libs/asura-lib-utils/io/decoded_data.h | 42 -- source/libs/asura-lib-utils/io/file.cpp | 292 -------- source/libs/asura-lib-utils/io/file.h | 146 ---- source/libs/asura-lib-utils/io/file_data.cpp | 52 -- source/libs/asura-lib-utils/io/file_data.h | 69 -- source/libs/asura-lib-utils/io/file_system.cpp | 198 ------ source/libs/asura-lib-utils/io/file_system.h | 112 --- source/libs/asura-lib-utils/io/io_batch_task.cpp | 0 source/libs/asura-lib-utils/io/io_batch_task.h | 31 - source/libs/asura-lib-utils/io/io_task.cpp | 55 -- source/libs/asura-lib-utils/io/io_task.h | 57 -- source/libs/asura-lib-utils/io/reloadable.h | 29 - source/libs/asura-lib-utils/manager.hpp | 14 - source/libs/asura-lib-utils/math/curve.cpp | 0 source/libs/asura-lib-utils/math/curve.h | 0 source/libs/asura-lib-utils/math/functions.cpp | 0 source/libs/asura-lib-utils/math/functions.h | 0 source/libs/asura-lib-utils/math/matrix44.cpp | 0 source/libs/asura-lib-utils/math/matrix44.h | 24 - source/libs/asura-lib-utils/math/quaternion.cpp | 0 source/libs/asura-lib-utils/math/quaternion.h | 0 source/libs/asura-lib-utils/math/ranged_value.cpp | 0 source/libs/asura-lib-utils/math/ranged_value.h | 0 source/libs/asura-lib-utils/math/rect.hpp | 47 -- source/libs/asura-lib-utils/math/rect.inl | 19 - source/libs/asura-lib-utils/math/transform.cpp | 0 source/libs/asura-lib-utils/math/transform.h | 30 - source/libs/asura-lib-utils/math/vector2.hpp | 70 -- source/libs/asura-lib-utils/math/vector2.inl | 114 ---- source/libs/asura-lib-utils/math/vector3.hpp | 233 ------- source/libs/asura-lib-utils/math/vector3.inl | 145 ---- source/libs/asura-lib-utils/math/vector4.h | 234 ------- source/libs/asura-lib-utils/math/vector4.inl | 152 ----- source/libs/asura-lib-utils/module.h | 32 - source/libs/asura-lib-utils/scripting/lua_env.h | 72 -- source/libs/asura-lib-utils/scripting/portable.hpp | 29 - source/libs/asura-lib-utils/singleton.hpp | 59 -- source/libs/asura-lib-utils/stringmap.cpp | 0 source/libs/asura-lib-utils/stringmap.hpp | 29 - .../threading/binding/_coroutine.cpp | 40 -- .../asura-lib-utils/threading/binding/_thread.cpp | 210 ------ .../libs/asura-lib-utils/threading/coroutine.cpp | 16 - source/libs/asura-lib-utils/threading/coroutine.h | 40 -- source/libs/asura-lib-utils/threading/mutex.cpp | 106 --- source/libs/asura-lib-utils/threading/mutex.h | 126 ---- .../libs/asura-lib-utils/threading/semaphore.cpp | 88 --- source/libs/asura-lib-utils/threading/semaphore.h | 70 -- source/libs/asura-lib-utils/threading/task.cpp | 12 - source/libs/asura-lib-utils/threading/task.h | 45 -- source/libs/asura-lib-utils/threading/thread.cpp | 272 -------- source/libs/asura-lib-utils/threading/thread.h | 221 ------ .../threading/thread_impl_posix.cpp | 9 - .../asura-lib-utils/threading/thread_impl_posix.h | 0 .../asura-lib-utils/threading/thread_impl_sdl.cpp | 0 .../asura-lib-utils/threading/thread_impl_sdl.h | 0 .../asura-lib-utils/threading/thread_impl_std.cpp | 0 .../asura-lib-utils/threading/thread_impl_std.h | 43 -- .../threading/thread_impl_win32.cpp | 76 --- .../asura-lib-utils/threading/thread_impl_win32.h | 47 -- .../libs/asura-lib-utils/threading/thread_task.cpp | 0 .../libs/asura-lib-utils/threading/thread_task.h | 44 -- source/libs/asura-lib-utils/type.h | 85 --- source/libs/asura-lib-utils/utils.h | 6 - source/libs/asura-lib-utils/utils_config.h | 10 - source/libs/asura-lib-utils/utils_module.cpp | 25 - source/libs/asura-lib-utils/utils_module.h | 32 - 250 files changed, 11784 deletions(-) delete mode 100644 source/libs/asura-lib-core/application.cpp delete mode 100644 source/libs/asura-lib-core/application.h delete mode 100644 source/libs/asura-lib-core/core_config.h delete mode 100644 source/libs/asura-lib-core/core_module.cpp delete mode 100644 source/libs/asura-lib-core/core_module.h delete mode 100644 source/libs/asura-lib-core/font/glyph.cpp delete mode 100644 source/libs/asura-lib-core/font/glyph.h delete mode 100644 source/libs/asura-lib-core/font/string.cpp delete mode 100644 source/libs/asura-lib-core/font/string.hpp delete mode 100644 source/libs/asura-lib-core/font/string.inl delete mode 100644 source/libs/asura-lib-core/font/ttf.cpp delete mode 100644 source/libs/asura-lib-core/font/ttf.h delete mode 100644 source/libs/asura-lib-core/font/utf.hpp delete mode 100644 source/libs/asura-lib-core/font/utf.inl delete mode 100644 source/libs/asura-lib-core/graphics/binding/_canvas.cpp delete mode 100644 source/libs/asura-lib-core/graphics/binding/_color.cpp delete mode 100644 source/libs/asura-lib-core/graphics/binding/_color32.cpp delete mode 100644 source/libs/asura-lib-core/graphics/binding/_image.cpp delete mode 100644 source/libs/asura-lib-core/graphics/binding/_image_data.cpp delete mode 100644 source/libs/asura-lib-core/graphics/binding/_image_decode_task.cpp delete mode 100644 source/libs/asura-lib-core/graphics/binding/_mesh2d.cpp delete mode 100644 source/libs/asura-lib-core/graphics/binding/_shader.cpp delete mode 100644 source/libs/asura-lib-core/graphics/binding/_sprite_batch.cpp delete mode 100644 source/libs/asura-lib-core/graphics/binding/_window.cpp delete mode 100644 source/libs/asura-lib-core/graphics/blend_mode.h delete mode 100644 source/libs/asura-lib-core/graphics/canvas.cpp delete mode 100644 source/libs/asura-lib-core/graphics/canvas.h delete mode 100644 source/libs/asura-lib-core/graphics/color.cpp delete mode 100644 source/libs/asura-lib-core/graphics/color.h delete mode 100644 source/libs/asura-lib-core/graphics/color32.cpp delete mode 100644 source/libs/asura-lib-core/graphics/color32.h delete mode 100644 source/libs/asura-lib-core/graphics/color_palette.h delete mode 100644 source/libs/asura-lib-core/graphics/gif.cpp delete mode 100644 source/libs/asura-lib-core/graphics/gif.h delete mode 100644 source/libs/asura-lib-core/graphics/gl.cpp delete mode 100644 source/libs/asura-lib-core/graphics/gl.h delete mode 100644 source/libs/asura-lib-core/graphics/image.cpp delete mode 100644 source/libs/asura-lib-core/graphics/image.h delete mode 100644 source/libs/asura-lib-core/graphics/image_data.cpp delete mode 100644 source/libs/asura-lib-core/graphics/image_data.h delete mode 100644 source/libs/asura-lib-core/graphics/image_decode_task.cpp delete mode 100644 source/libs/asura-lib-core/graphics/image_decode_task.h delete mode 100644 source/libs/asura-lib-core/graphics/image_decoder.h delete mode 100644 source/libs/asura-lib-core/graphics/mesh2d.cpp delete mode 100644 source/libs/asura-lib-core/graphics/mesh2d.h delete mode 100644 source/libs/asura-lib-core/graphics/mesh2d_data.cpp delete mode 100644 source/libs/asura-lib-core/graphics/mesh2d_data.h delete mode 100644 source/libs/asura-lib-core/graphics/pixel_format.h delete mode 100644 source/libs/asura-lib-core/graphics/png_decoder.cpp delete mode 100644 source/libs/asura-lib-core/graphics/png_decoder.h delete mode 100644 source/libs/asura-lib-core/graphics/quad.cpp delete mode 100644 source/libs/asura-lib-core/graphics/quad.h delete mode 100644 source/libs/asura-lib-core/graphics/render_state.h delete mode 100644 source/libs/asura-lib-core/graphics/render_target.cpp delete mode 100644 source/libs/asura-lib-core/graphics/render_target.h delete mode 100644 source/libs/asura-lib-core/graphics/shader.cpp delete mode 100644 source/libs/asura-lib-core/graphics/shader.h delete mode 100644 source/libs/asura-lib-core/graphics/shape.cpp delete mode 100644 source/libs/asura-lib-core/graphics/shape.h delete mode 100644 source/libs/asura-lib-core/graphics/sprite_batch.cpp delete mode 100644 source/libs/asura-lib-core/graphics/sprite_batch.h delete mode 100644 source/libs/asura-lib-core/graphics/stb_decoder.cpp delete mode 100644 source/libs/asura-lib-core/graphics/stb_decoder.h delete mode 100644 source/libs/asura-lib-core/graphics/texture.cpp delete mode 100644 source/libs/asura-lib-core/graphics/texture.h delete mode 100644 source/libs/asura-lib-core/input/clipboard.cpp delete mode 100644 source/libs/asura-lib-core/input/clipboard.h delete mode 100644 source/libs/asura-lib-core/input/cursor.cpp delete mode 100644 source/libs/asura-lib-core/input/cursor.defs delete mode 100644 source/libs/asura-lib-core/input/cursor.h delete mode 100644 source/libs/asura-lib-core/input/cursor_impl_sdl.cpp delete mode 100644 source/libs/asura-lib-core/input/cursor_impl_sdl.h delete mode 100644 source/libs/asura-lib-core/input/event.h delete mode 100644 source/libs/asura-lib-core/input/input_device.hpp delete mode 100644 source/libs/asura-lib-core/input/joypad.h delete mode 100644 source/libs/asura-lib-core/input/keyboard.cpp delete mode 100644 source/libs/asura-lib-core/input/keyboard.defs delete mode 100644 source/libs/asura-lib-core/input/keyboard.h delete mode 100644 source/libs/asura-lib-core/input/mouse.cpp delete mode 100644 source/libs/asura-lib-core/input/mouse.defs delete mode 100644 source/libs/asura-lib-core/input/mouse.h delete mode 100644 source/libs/asura-lib-core/profiler/stats.cpp delete mode 100644 source/libs/asura-lib-core/profiler/stats.h delete mode 100644 source/libs/asura-lib-core/threading/coroutine.cpp delete mode 100644 source/libs/asura-lib-core/threading/coroutine.h delete mode 100644 source/libs/asura-lib-core/threading/thread.cpp delete mode 100644 source/libs/asura-lib-core/threading/thread.h delete mode 100644 source/libs/asura-lib-core/threading/thread_impl_posix.cpp delete mode 100644 source/libs/asura-lib-core/threading/thread_impl_posix.h delete mode 100644 source/libs/asura-lib-core/threading/thread_impl_sdl.cpp delete mode 100644 source/libs/asura-lib-core/threading/thread_impl_sdl.h delete mode 100644 source/libs/asura-lib-core/threading/thread_impl_std.cpp delete mode 100644 source/libs/asura-lib-core/threading/thread_impl_std.h delete mode 100644 source/libs/asura-lib-core/threading/thread_impl_win32.cpp delete mode 100644 source/libs/asura-lib-core/threading/thread_impl_win32.h delete mode 100644 source/libs/asura-lib-core/threading/thread_task.cpp delete mode 100644 source/libs/asura-lib-core/threading/thread_task.h delete mode 100644 source/libs/asura-lib-core/time/timer.cpp delete mode 100644 source/libs/asura-lib-core/time/timer.h delete mode 100644 source/libs/asura-lib-core/type.h delete mode 100644 source/libs/asura-lib-core/window/window.cpp delete mode 100644 source/libs/asura-lib-core/window/window.h delete mode 100644 source/libs/asura-lib-core/window/window_impl_glew.cpp delete mode 100644 source/libs/asura-lib-core/window/window_impl_glew.h delete mode 100644 source/libs/asura-lib-core/window/window_impl_glut.cpp delete mode 100644 source/libs/asura-lib-core/window/window_impl_glut.h delete mode 100644 source/libs/asura-lib-core/window/window_impl_sdl.cpp delete mode 100644 source/libs/asura-lib-core/window/window_impl_sdl.h delete mode 100644 source/libs/asura-lib-framework/compile.bat delete mode 100644 source/libs/asura-lib-framework/compile.sh delete mode 100644 source/libs/asura-lib-framework/main.cpp delete mode 100644 source/libs/asura-lib-framework/scripts/ai/behavior_tree.lua delete mode 100644 source/libs/asura-lib-framework/scripts/ai/state_graph.lua delete mode 100644 source/libs/asura-lib-framework/scripts/ai/state_machine.lua delete mode 100644 source/libs/asura-lib-framework/scripts/audio/sound.lua delete mode 100644 source/libs/asura-lib-framework/scripts/audio/source.lua delete mode 100644 source/libs/asura-lib-framework/scripts/class.lua delete mode 100644 source/libs/asura-lib-framework/scripts/component.lua delete mode 100644 source/libs/asura-lib-framework/scripts/entity.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/animation_loader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/asset.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/entity_loader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/image_loader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/loader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/material_loader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/path_loader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/scene_loader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/script_loader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/shader_loader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/filesystem/statemap_loader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/framework.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/animation.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/animator.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/camera.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/canvas.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/default_shaders.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/image.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/material.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/material_manager.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/mesh2d.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/mesh2d_renderer.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/particle_system.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/renderer.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/shader.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/shaderHelper.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/shape.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/shape_renderer.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/sprite.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/sprite_batch_renderer.lua delete mode 100644 source/libs/asura-lib-framework/scripts/graphics/sprite_renderer.lua delete mode 100644 source/libs/asura-lib-framework/scripts/gui/button.lua delete mode 100644 source/libs/asura-lib-framework/scripts/gui/text.lua delete mode 100644 source/libs/asura-lib-framework/scripts/gui/widget.lua delete mode 100644 source/libs/asura-lib-framework/scripts/managers/scene_manager.lua delete mode 100644 source/libs/asura-lib-framework/scripts/managers/sprite_manager.lua delete mode 100644 source/libs/asura-lib-framework/scripts/math/curve.lua delete mode 100644 source/libs/asura-lib-framework/scripts/path/path.lua delete mode 100644 source/libs/asura-lib-framework/scripts/path/path_calculator.lua delete mode 100644 source/libs/asura-lib-framework/scripts/path/path_manager.lua delete mode 100644 source/libs/asura-lib-framework/scripts/scene.lua delete mode 100644 source/libs/asura-lib-framework/scripts/transform.lua delete mode 100644 source/libs/asura-lib-json/json.cpp delete mode 100644 source/libs/asura-lib-json/json.h delete mode 100644 source/libs/asura-lib-json/json_module.cpp delete mode 100644 source/libs/asura-lib-json/json_module.h delete mode 100644 source/libs/asura-lib-openal/sound.cpp delete mode 100644 source/libs/asura-lib-openal/sound.h delete mode 100644 source/libs/asura-lib-openal/sound_decode_task.cpp delete mode 100644 source/libs/asura-lib-openal/sound_decode_task.h delete mode 100644 source/libs/asura-lib-openal/sound_decoder.cpp delete mode 100644 source/libs/asura-lib-openal/sound_decoder.h delete mode 100644 source/libs/asura-lib-utils/exceptions/exception.cpp delete mode 100644 source/libs/asura-lib-utils/exceptions/exception.h delete mode 100644 source/libs/asura-lib-utils/io/binding/_compressor.cpp delete mode 100644 source/libs/asura-lib-utils/io/binding/_data_buffer.cpp delete mode 100644 source/libs/asura-lib-utils/io/binding/_file.cpp delete mode 100644 source/libs/asura-lib-utils/io/binding/_file_data.cpp delete mode 100644 source/libs/asura-lib-utils/io/binding/_file_system.cpp delete mode 100644 source/libs/asura-lib-utils/io/binding/_io_task.cpp delete mode 100644 source/libs/asura-lib-utils/io/compressor.cpp delete mode 100644 source/libs/asura-lib-utils/io/compressor.h delete mode 100644 source/libs/asura-lib-utils/io/data_buffer.cpp delete mode 100644 source/libs/asura-lib-utils/io/data_buffer.h delete mode 100644 source/libs/asura-lib-utils/io/decoded_data.cpp delete mode 100644 source/libs/asura-lib-utils/io/decoded_data.h delete mode 100644 source/libs/asura-lib-utils/io/file.cpp delete mode 100644 source/libs/asura-lib-utils/io/file.h delete mode 100644 source/libs/asura-lib-utils/io/file_data.cpp delete mode 100644 source/libs/asura-lib-utils/io/file_data.h delete mode 100644 source/libs/asura-lib-utils/io/file_system.cpp delete mode 100644 source/libs/asura-lib-utils/io/file_system.h delete mode 100644 source/libs/asura-lib-utils/io/io_batch_task.cpp delete mode 100644 source/libs/asura-lib-utils/io/io_batch_task.h delete mode 100644 source/libs/asura-lib-utils/io/io_task.cpp delete mode 100644 source/libs/asura-lib-utils/io/io_task.h delete mode 100644 source/libs/asura-lib-utils/io/reloadable.h delete mode 100644 source/libs/asura-lib-utils/manager.hpp delete mode 100644 source/libs/asura-lib-utils/math/curve.cpp delete mode 100644 source/libs/asura-lib-utils/math/curve.h delete mode 100644 source/libs/asura-lib-utils/math/functions.cpp delete mode 100644 source/libs/asura-lib-utils/math/functions.h delete mode 100644 source/libs/asura-lib-utils/math/matrix44.cpp delete mode 100644 source/libs/asura-lib-utils/math/matrix44.h delete mode 100644 source/libs/asura-lib-utils/math/quaternion.cpp delete mode 100644 source/libs/asura-lib-utils/math/quaternion.h delete mode 100644 source/libs/asura-lib-utils/math/ranged_value.cpp delete mode 100644 source/libs/asura-lib-utils/math/ranged_value.h delete mode 100644 source/libs/asura-lib-utils/math/rect.hpp delete mode 100644 source/libs/asura-lib-utils/math/rect.inl delete mode 100644 source/libs/asura-lib-utils/math/transform.cpp delete mode 100644 source/libs/asura-lib-utils/math/transform.h delete mode 100644 source/libs/asura-lib-utils/math/vector2.hpp delete mode 100644 source/libs/asura-lib-utils/math/vector2.inl delete mode 100644 source/libs/asura-lib-utils/math/vector3.hpp delete mode 100644 source/libs/asura-lib-utils/math/vector3.inl delete mode 100644 source/libs/asura-lib-utils/math/vector4.h delete mode 100644 source/libs/asura-lib-utils/math/vector4.inl delete mode 100644 source/libs/asura-lib-utils/module.h delete mode 100644 source/libs/asura-lib-utils/scripting/lua_env.h delete mode 100644 source/libs/asura-lib-utils/scripting/portable.hpp delete mode 100644 source/libs/asura-lib-utils/singleton.hpp delete mode 100644 source/libs/asura-lib-utils/stringmap.cpp delete mode 100644 source/libs/asura-lib-utils/stringmap.hpp delete mode 100644 source/libs/asura-lib-utils/threading/binding/_coroutine.cpp delete mode 100644 source/libs/asura-lib-utils/threading/binding/_thread.cpp delete mode 100644 source/libs/asura-lib-utils/threading/coroutine.cpp delete mode 100644 source/libs/asura-lib-utils/threading/coroutine.h delete mode 100644 source/libs/asura-lib-utils/threading/mutex.cpp delete mode 100644 source/libs/asura-lib-utils/threading/mutex.h delete mode 100644 source/libs/asura-lib-utils/threading/semaphore.cpp delete mode 100644 source/libs/asura-lib-utils/threading/semaphore.h delete mode 100644 source/libs/asura-lib-utils/threading/task.cpp delete mode 100644 source/libs/asura-lib-utils/threading/task.h delete mode 100644 source/libs/asura-lib-utils/threading/thread.cpp delete mode 100644 source/libs/asura-lib-utils/threading/thread.h delete mode 100644 source/libs/asura-lib-utils/threading/thread_impl_posix.cpp delete mode 100644 source/libs/asura-lib-utils/threading/thread_impl_posix.h delete mode 100644 source/libs/asura-lib-utils/threading/thread_impl_sdl.cpp delete mode 100644 source/libs/asura-lib-utils/threading/thread_impl_sdl.h delete mode 100644 source/libs/asura-lib-utils/threading/thread_impl_std.cpp delete mode 100644 source/libs/asura-lib-utils/threading/thread_impl_std.h delete mode 100644 source/libs/asura-lib-utils/threading/thread_impl_win32.cpp delete mode 100644 source/libs/asura-lib-utils/threading/thread_impl_win32.h delete mode 100644 source/libs/asura-lib-utils/threading/thread_task.cpp delete mode 100644 source/libs/asura-lib-utils/threading/thread_task.h delete mode 100644 source/libs/asura-lib-utils/type.h delete mode 100644 source/libs/asura-lib-utils/utils.h delete mode 100644 source/libs/asura-lib-utils/utils_config.h delete mode 100644 source/libs/asura-lib-utils/utils_module.cpp delete mode 100644 source/libs/asura-lib-utils/utils_module.h (limited to 'source/libs') diff --git a/source/libs/asura-lib-core/application.cpp b/source/libs/asura-lib-core/application.cpp deleted file mode 100644 index 0a1c1ef..0000000 --- a/source/libs/asura-lib-core/application.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "Sdl2/SDL.h" -#include "Exceptions/Exception.h" -#include "Scripting/Luax.hpp" -#include "Application.h" - -using namespace Luax; - -namespace AsuraEngine -{ - - Application::Application() - { - - } - - Application::~Application() - { - - } - - bool Application::InitSubModules(uint flag) - { - - } - -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/application.h b/source/libs/asura-lib-core/application.h deleted file mode 100644 index 9606819..0000000 --- a/source/libs/asura-lib-core/application.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef __ASURA_ENGINE_APPLICATION_H__ -#define __ASURA_ENGINE_APPLICATION_H__ - -#include -#include -#include - -#include "core_config.h" - -namespace AsuraEngine -{ - - /// - /// 子模块 - /// - enum SubModules - { - ASURA_MODULE_NONE = 0X00000000U, - - ASURA_MODULE_GRAPHICS = 1 << 1, - ASURA_MODULE_AUDIO = 1 << 2, - ASURA_MODULE_FONT = 1 << 3, - ASURA_MODULE_INPUT = 1 << 4, - ASURA_MODULE_MATH = 1 << 5, - ASURA_MODULE_PHYSICS = 1 << 6, - ASURA_MODULE_TIME = 1 << 7, - ASURA_MODULE_WINDOW = 1 << 8, - - ASURA_MODULE_ALL = 0XFFFFFFFFU - }; - - /// - /// 管理主循环 - /// - ASURA_ABSTRACT class Application - { - public: - - Application(); - - virtual ~Application(); - - /// - /// 初始化进入前的子系统 - /// - bool InitSubModules(uint flag = ASURA_MODULE_ALL); - - /// - /// 进入入口 - /// - virtual void Run(int argc, char* args[]); - - /// - /// 退出run时的处理 - /// - virtual void OnExit(); - - protected: - - /// - /// 添加module,application拥有module的所有权。 - /// - void EnqueueModule(Module* module); - - private: - - /// - /// 主线程的lua state handle,应用主循环在这里运行。一般上来说,只需要主线程有一个lua_State,其他线程不需要。在两个线程间 - /// 传递lua数据太痛苦了。任务在C++里面写,然后注册一个回调,而不是在另一个线程创建lua_State并注册函数,执行后发回数据 - /// 给主线程的lua_State。保证只有一个native实例之和一个lua_State绑定。 - /// - lua_State* mMainLuaState; - - /// - /// 载入的Asura libs,会按照队列顺序初始化,并在退出时执行退出函数。 - /// - std::queue mModules; - - }; - -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/core_config.h b/source/libs/asura-lib-core/core_config.h deleted file mode 100644 index 06eecc7..0000000 --- a/source/libs/asura-lib-core/core_config.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __ASURA_CORE_CONFIG_H__ -#define __ASURA_CORE_CONFIG_H__ - -#define ASURA_CORE_SDL 1 -#define ASURA_CORE_GLUT 0 -#define ASURA_CORE_GLFW 0 - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/core_module.cpp b/source/libs/asura-lib-core/core_module.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/core_module.h b/source/libs/asura-lib-core/core_module.h deleted file mode 100644 index 2cded93..0000000 --- a/source/libs/asura-lib-core/core_module.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __ASURA_CORE_MODULE_H__ -#define __ASURA_CORE_MODULE_H__ - -namespace AsuraEngine -{ - - - -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/font/glyph.cpp b/source/libs/asura-lib-core/font/glyph.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/font/glyph.h b/source/libs/asura-lib-core/font/glyph.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/font/string.cpp b/source/libs/asura-lib-core/font/string.cpp deleted file mode 100644 index 8c9c55a..0000000 --- a/source/libs/asura-lib-core/font/string.cpp +++ /dev/null @@ -1,376 +0,0 @@ -#include "String.hpp" -#include "Utf.hpp" - -namespace AsuraEngine -{ - namespace Text - { - - - //////////////////////////////////////////////////////////// - const std::size_t String::InvalidPos = std::basic_string::npos; - - - //////////////////////////////////////////////////////////// - String::String() - { - } - - - //////////////////////////////////////////////////////////// - String::String(char ansiChar, const std::locale& locale) - { - mString += Utf32::DecodeAnsi(ansiChar, locale); - } - - - //////////////////////////////////////////////////////////// - String::String(wchar_t wideChar) - { - mString += Utf32::DecodeWide(wideChar); - } - - - //////////////////////////////////////////////////////////// - String::String(uint32 utf32Char) - { - mString += utf32Char; - } - - - //////////////////////////////////////////////////////////// - String::String(const char* ansiString, const std::locale& locale) - { - if (ansiString) - { - std::size_t length = strlen(ansiString); - if (length > 0) - { - mString.reserve(length + 1); - Utf32::FromAnsi(ansiString, ansiString + length, std::back_inserter(mString), locale); - } - } - } - - - //////////////////////////////////////////////////////////// - String::String(const std::string& ansiString, const std::locale& locale) - { - mString.reserve(ansiString.length() + 1); - Utf32::FromAnsi(ansiString.begin(), ansiString.end(), std::back_inserter(mString), locale); - } - - - //////////////////////////////////////////////////////////// - String::String(const wchar_t* wideString) - { - if (wideString) - { - std::size_t length = std::wcslen(wideString); - if (length > 0) - { - mString.reserve(length + 1); - Utf32::FromWide(wideString, wideString + length, std::back_inserter(mString)); - } - } - } - - - //////////////////////////////////////////////////////////// - String::String(const std::wstring& wideString) - { - mString.reserve(wideString.length() + 1); - Utf32::FromWide(wideString.begin(), wideString.end(), std::back_inserter(mString)); - } - - - //////////////////////////////////////////////////////////// - String::String(const uint32* utf32String) - { - if (utf32String) - mString = utf32String; - } - - - //////////////////////////////////////////////////////////// - String::String(const std::basic_string& utf32String) : - mString(utf32String) - { - } - - - //////////////////////////////////////////////////////////// - String::String(const String& copy) : - mString(copy.mString) - { - } - - - //////////////////////////////////////////////////////////// - String::operator std::string() const - { - return ToAnsiString(); - } - - - //////////////////////////////////////////////////////////// - String::operator std::wstring() const - { - return ToWideString(); - } - - - //////////////////////////////////////////////////////////// - std::string String::ToAnsiString(const std::locale& locale) const - { - // Prepare the output string - std::string output; - output.reserve(mString.length() + 1); - - // Convert - Utf32::ToAnsi(mString.begin(), mString.end(), std::back_inserter(output), 0, locale); - - return output; - } - - - //////////////////////////////////////////////////////////// - std::wstring String::ToWideString() const - { - // Prepare the output string - std::wstring output; - output.reserve(mString.length() + 1); - - // Convert - Utf32::ToWide(mString.begin(), mString.end(), std::back_inserter(output), 0); - - return output; - } - - - //////////////////////////////////////////////////////////// - std::basic_string String::ToUtf8() const - { - // Prepare the output string - std::basic_string output; - output.reserve(mString.length()); - - // Convert - Utf32::ToUtf8(mString.begin(), mString.end(), std::back_inserter(output)); - - return output; - } - - - //////////////////////////////////////////////////////////// - std::basic_string String::ToUtf16() const - { - // Prepare the output string - std::basic_string output; - output.reserve(mString.length()); - - // Convert - Utf32::ToUtf16(mString.begin(), mString.end(), std::back_inserter(output)); - - return output; - } - - - //////////////////////////////////////////////////////////// - std::basic_string String::ToUtf32() const - { - return mString; - } - - - //////////////////////////////////////////////////////////// - String& String::operator =(const String& right) - { - mString = right.mString; - return *this; - } - - - //////////////////////////////////////////////////////////// - String& String::operator +=(const String& right) - { - mString += right.mString; - return *this; - } - - - //////////////////////////////////////////////////////////// - uint32 String::operator [](std::size_t index) const - { - return mString[index]; - } - - - //////////////////////////////////////////////////////////// - uint32& String::operator [](std::size_t index) - { - return mString[index]; - } - - - //////////////////////////////////////////////////////////// - void String::Clear() - { - mString.clear(); - } - - - //////////////////////////////////////////////////////////// - std::size_t String::GetSize() const - { - return mString.size(); - } - - - //////////////////////////////////////////////////////////// - bool String::IsEmpty() const - { - return mString.empty(); - } - - - //////////////////////////////////////////////////////////// - void String::Erase(std::size_t position, std::size_t count) - { - mString.erase(position, count); - } - - - //////////////////////////////////////////////////////////// - void String::Insert(std::size_t position, const String& str) - { - mString.insert(position, str.mString); - } - - - //////////////////////////////////////////////////////////// - std::size_t String::Find(const String& str, std::size_t start) const - { - return mString.find(str.mString, start); - } - - - //////////////////////////////////////////////////////////// - void String::Replace(std::size_t position, std::size_t length, const String& replaceWith) - { - mString.replace(position, length, replaceWith.mString); - } - - - //////////////////////////////////////////////////////////// - void String::Replace(const String& searchFor, const String& replaceWith) - { - std::size_t step = replaceWith.GetSize(); - std::size_t len = searchFor.GetSize(); - std::size_t pos = Find(searchFor); - - // Replace each occurrence of search - while (pos != InvalidPos) - { - Replace(pos, len, replaceWith); - pos = Find(searchFor, pos + step); - } - } - - - //////////////////////////////////////////////////////////// - String String::Substring(std::size_t position, std::size_t length) const - { - return mString.substr(position, length); - } - - - //////////////////////////////////////////////////////////// - const uint32* String::GetData() const - { - return mString.c_str(); - } - - - //////////////////////////////////////////////////////////// - String::Iterator String::Begin() - { - return mString.begin(); - } - - - //////////////////////////////////////////////////////////// - String::ConstIterator String::Begin() const - { - return mString.begin(); - } - - - //////////////////////////////////////////////////////////// - String::Iterator String::End() - { - return mString.end(); - } - - - //////////////////////////////////////////////////////////// - String::ConstIterator String::End() const - { - return mString.end(); - } - - - //////////////////////////////////////////////////////////// - bool operator ==(const String& left, const String& right) - { - return left.mString == right.mString; - } - - - //////////////////////////////////////////////////////////// - bool operator !=(const String& left, const String& right) - { - return !(left == right); - } - - - //////////////////////////////////////////////////////////// - bool operator <(const String& left, const String& right) - { - return left.mString < right.mString; - } - - - //////////////////////////////////////////////////////////// - bool operator >(const String& left, const String& right) - { - return right < left; - } - - - //////////////////////////////////////////////////////////// - bool operator <=(const String& left, const String& right) - { - return !(right < left); - } - - - //////////////////////////////////////////////////////////// - bool operator >=(const String& left, const String& right) - { - return !(left < right); - } - - - //////////////////////////////////////////////////////////// - String operator +(const String& left, const String& right) - { - String string = left; - string += right; - - return string; - } - - - } -} diff --git a/source/libs/asura-lib-core/font/string.hpp b/source/libs/asura-lib-core/font/string.hpp deleted file mode 100644 index 226735b..0000000 --- a/source/libs/asura-lib-core/font/string.hpp +++ /dev/null @@ -1,594 +0,0 @@ -#ifndef __ASURA_ENGINE_STRING_H__ -#define __ASURA_ENGINE_STRING_H__ - -#include "Config.h" -#include -#include -#include - -namespace AsuraEngine -{ - namespace Text - { - - - //////////////////////////////////////////////////////////// - /// \brief Utility string class that automatically handles - /// conversions between types and encodings - /// - //////////////////////////////////////////////////////////// - class String - { - public: - - //////////////////////////////////////////////////////////// - // Types - //////////////////////////////////////////////////////////// - typedef std::basic_string::iterator Iterator; ///< Iterator type - typedef std::basic_string::const_iterator ConstIterator; ///< Read-only iterator type - - //////////////////////////////////////////////////////////// - // Static member data - //////////////////////////////////////////////////////////// - static const std::size_t InvalidPos; ///< Represents an invalid position in the string - - //////////////////////////////////////////////////////////// - /// \brief Default constructor - /// - /// This constructor creates an empty string. - /// - //////////////////////////////////////////////////////////// - String(); - - //////////////////////////////////////////////////////////// - /// \brief Construct from a single ANSI character and a locale - /// - /// The source character is converted to UTF-32 according - /// to the given locale. - /// - /// \param ansiChar ANSI character to convert - /// \param locale Locale to use for conversion - /// - //////////////////////////////////////////////////////////// - String(char ansiChar, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Construct from single wide character - /// - /// \param wideChar Wide character to convert - /// - //////////////////////////////////////////////////////////// - String(wchar_t wideChar); - - //////////////////////////////////////////////////////////// - /// \brief Construct from single UTF-32 character - /// - /// \param utf32Char UTF-32 character to convert - /// - //////////////////////////////////////////////////////////// - String(uint utf32Char); - - //////////////////////////////////////////////////////////// - /// \brief Construct from a null-terminated C-style ANSI string and a locale - /// - /// The source string is converted to UTF-32 according - /// to the given locale. - /// - /// \param ansiString ANSI string to convert - /// \param locale Locale to use for conversion - /// - //////////////////////////////////////////////////////////// - String(const char* ansiString, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Construct from an ANSI string and a locale - /// - /// The source string is converted to UTF-32 according - /// to the given locale. - /// - /// \param ansiString ANSI string to convert - /// \param locale Locale to use for conversion - /// - //////////////////////////////////////////////////////////// - String(const std::string& ansiString, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Construct from null-terminated C-style wide string - /// - /// \param wideString Wide string to convert - /// - //////////////////////////////////////////////////////////// - String(const wchar_t* wideString); - - //////////////////////////////////////////////////////////// - /// \brief Construct from a wide string - /// - /// \param wideString Wide string to convert - /// - //////////////////////////////////////////////////////////// - String(const std::wstring& wideString); - - //////////////////////////////////////////////////////////// - /// \brief Construct from a null-terminated C-style UTF-32 string - /// - /// \param utf32String UTF-32 string to assign - /// - //////////////////////////////////////////////////////////// - String(const uint* utf32String); - - //////////////////////////////////////////////////////////// - /// \brief Construct from an UTF-32 string - /// - /// \param utf32String UTF-32 string to assign - /// - //////////////////////////////////////////////////////////// - String(const std::basic_string& utf32String); - - //////////////////////////////////////////////////////////// - /// \brief Copy constructor - /// - /// \param copy Instance to copy - /// - //////////////////////////////////////////////////////////// - String(const String& copy); - - //////////////////////////////////////////////////////////// - /// \brief Create a new sf::String from a UTF-8 encoded string - /// - /// \param begin Forward iterator to the beginning of the UTF-8 sequence - /// \param end Forward iterator to the end of the UTF-8 sequence - /// - /// \return A sf::String containing the source string - /// - /// \see fromUtf16, fromUtf32 - /// - //////////////////////////////////////////////////////////// - template - static String FromUtf8(T begin, T end); - - //////////////////////////////////////////////////////////// - /// \brief Create a new sf::String from a UTF-16 encoded string - /// - /// \param begin Forward iterator to the beginning of the UTF-16 sequence - /// \param end Forward iterator to the end of the UTF-16 sequence - /// - /// \return A sf::String containing the source string - /// - /// \see fromUtf8, fromUtf32 - /// - //////////////////////////////////////////////////////////// - template - static String FromUtf16(T begin, T end); - - //////////////////////////////////////////////////////////// - /// \brief Create a new sf::String from a UTF-32 encoded string - /// - /// This function is provided for consistency, it is equivalent to - /// using the constructors that takes a const sf::uint* or - /// a std::basic_string. - /// - /// \param begin Forward iterator to the beginning of the UTF-32 sequence - /// \param end Forward iterator to the end of the UTF-32 sequence - /// - /// \return A sf::String containing the source string - /// - /// \see fromUtf8, fromUtf16 - /// - //////////////////////////////////////////////////////////// - template - static String FromUtf32(T begin, T end); - - //////////////////////////////////////////////////////////// - /// \brief Implicit conversion operator to std::string (ANSI string) - /// - /// The current global locale is used for conversion. If you - /// want to explicitly specify a locale, see toAnsiString. - /// Characters that do not fit in the target encoding are - /// discarded from the returned string. - /// This operator is defined for convenience, and is equivalent - /// to calling toAnsiString(). - /// - /// \return Converted ANSI string - /// - /// \see toAnsiString, operator std::wstring - /// - //////////////////////////////////////////////////////////// - operator std::string() const; - - //////////////////////////////////////////////////////////// - /// \brief Implicit conversion operator to std::wstring (wide string) - /// - /// Characters that do not fit in the target encoding are - /// discarded from the returned string. - /// This operator is defined for convenience, and is equivalent - /// to calling toWideString(). - /// - /// \return Converted wide string - /// - /// \see toWideString, operator std::string - /// - //////////////////////////////////////////////////////////// - operator std::wstring() const; - - //////////////////////////////////////////////////////////// - /// \brief Convert the Unicode string to an ANSI string - /// - /// The UTF-32 string is converted to an ANSI string in - /// the encoding defined by \a locale. - /// Characters that do not fit in the target encoding are - /// discarded from the returned string. - /// - /// \param locale Locale to use for conversion - /// - /// \return Converted ANSI string - /// - /// \see toWideString, operator std::string - /// - //////////////////////////////////////////////////////////// - std::string ToAnsiString(const std::locale& locale = std::locale()) const; - - //////////////////////////////////////////////////////////// - /// \brief Convert the Unicode string to a wide string - /// - /// Characters that do not fit in the target encoding are - /// discarded from the returned string. - /// - /// \return Converted wide string - /// - /// \see toAnsiString, operator std::wstring - /// - //////////////////////////////////////////////////////////// - std::wstring ToWideString() const; - - //////////////////////////////////////////////////////////// - /// \brief Convert the Unicode string to a UTF-8 string - /// - /// \return Converted UTF-8 string - /// - /// \see toUtf16, toUtf32 - /// - //////////////////////////////////////////////////////////// - std::basic_string ToUtf8() const; - - //////////////////////////////////////////////////////////// - /// \brief Convert the Unicode string to a UTF-16 string - /// - /// \return Converted UTF-16 string - /// - /// \see toUtf8, toUtf32 - /// - //////////////////////////////////////////////////////////// - std::basic_string ToUtf16() const; - - //////////////////////////////////////////////////////////// - /// \brief Convert the Unicode string to a UTF-32 string - /// - /// This function doesn't perform any conversion, since the - /// string is already stored as UTF-32 internally. - /// - /// \return Converted UTF-32 string - /// - /// \see toUtf8, toUtf16 - /// - //////////////////////////////////////////////////////////// - std::basic_string ToUtf32() const; - - //////////////////////////////////////////////////////////// - /// \brief Overload of assignment operator - /// - /// \param right Instance to assign - /// - /// \return Reference to self - /// - //////////////////////////////////////////////////////////// - String& operator =(const String& right); - - //////////////////////////////////////////////////////////// - /// \brief Overload of += operator to append an UTF-32 string - /// - /// \param right String to append - /// - /// \return Reference to self - /// - //////////////////////////////////////////////////////////// - String& operator +=(const String& right); - - //////////////////////////////////////////////////////////// - /// \brief Overload of [] operator to access a character by its position - /// - /// This function provides read-only access to characters. - /// Note: the behavior is undefined if \a index is out of range. - /// - /// \param index Index of the character to get - /// - /// \return Character at position \a index - /// - //////////////////////////////////////////////////////////// - uint operator [](std::size_t index) const; - - //////////////////////////////////////////////////////////// - /// \brief Overload of [] operator to access a character by its position - /// - /// This function provides read and write access to characters. - /// Note: the behavior is undefined if \a index is out of range. - /// - /// \param index Index of the character to get - /// - /// \return Reference to the character at position \a index - /// - //////////////////////////////////////////////////////////// - uint& operator [](std::size_t index); - - //////////////////////////////////////////////////////////// - /// \brief Clear the string - /// - /// This function removes all the characters from the string. - /// - /// \see isEmpty, erase - /// - //////////////////////////////////////////////////////////// - void Clear(); - - //////////////////////////////////////////////////////////// - /// \brief Get the size of the string - /// - /// \return Number of characters in the string - /// - /// \see isEmpty - /// - //////////////////////////////////////////////////////////// - std::size_t GetSize() const; - - //////////////////////////////////////////////////////////// - /// \brief Check whether the string is empty or not - /// - /// \return True if the string is empty (i.e. contains no character) - /// - /// \see clear, getSize - /// - //////////////////////////////////////////////////////////// - bool IsEmpty() const; - - //////////////////////////////////////////////////////////// - /// \brief Erase one or more characters from the string - /// - /// This function removes a sequence of \a count characters - /// starting from \a position. - /// - /// \param position Position of the first character to erase - /// \param count Number of characters to erase - /// - //////////////////////////////////////////////////////////// - void Erase(std::size_t position, std::size_t count = 1); - - //////////////////////////////////////////////////////////// - /// \brief Insert one or more characters into the string - /// - /// This function inserts the characters of \a str - /// into the string, starting from \a position. - /// - /// \param position Position of insertion - /// \param str Characters to insert - /// - //////////////////////////////////////////////////////////// - void Insert(std::size_t position, const String& str); - - //////////////////////////////////////////////////////////// - /// \brief Find a sequence of one or more characters in the string - /// - /// This function searches for the characters of \a str - /// in the string, starting from \a start. - /// - /// \param str Characters to find - /// \param start Where to begin searching - /// - /// \return Position of \a str in the string, or String::InvalidPos if not found - /// - //////////////////////////////////////////////////////////// - std::size_t Find(const String& str, std::size_t start = 0) const; - - //////////////////////////////////////////////////////////// - /// \brief Replace a substring with another string - /// - /// This function replaces the substring that starts at index \a position - /// and spans \a length characters with the string \a replaceWith. - /// - /// \param position Index of the first character to be replaced - /// \param length Number of characters to replace. You can pass InvalidPos to - /// replace all characters until the end of the string. - /// \param replaceWith String that replaces the given substring. - /// - //////////////////////////////////////////////////////////// - void Replace(std::size_t position, std::size_t length, const String& replaceWith); - - //////////////////////////////////////////////////////////// - /// \brief Replace all occurrences of a substring with a replacement string - /// - /// This function replaces all occurrences of \a searchFor in this string - /// with the string \a replaceWith. - /// - /// \param searchFor The value being searched for - /// \param replaceWith The value that replaces found \a searchFor values - /// - //////////////////////////////////////////////////////////// - void Replace(const String& searchFor, const String& replaceWith); - - //////////////////////////////////////////////////////////// - /// \brief Return a part of the string - /// - /// This function returns the substring that starts at index \a position - /// and spans \a length characters. - /// - /// \param position Index of the first character - /// \param length Number of characters to include in the substring (if - /// the string is shorter, as many characters as possible - /// are included). \ref InvalidPos can be used to include all - /// characters until the end of the string. - /// - /// \return String object containing a substring of this object - /// - //////////////////////////////////////////////////////////// - String Substring(std::size_t position, std::size_t length = InvalidPos) const; - - //////////////////////////////////////////////////////////// - /// \brief Get a pointer to the C-style array of characters - /// - /// This functions provides a read-only access to a - /// null-terminated C-style representation of the string. - /// The returned pointer is temporary and is meant only for - /// immediate use, thus it is not recommended to store it. - /// - /// \return Read-only pointer to the array of characters - /// - //////////////////////////////////////////////////////////// - const uint* GetData() const; - - //////////////////////////////////////////////////////////// - /// \brief Return an iterator to the beginning of the string - /// - /// \return Read-write iterator to the beginning of the string characters - /// - /// \see end - /// - //////////////////////////////////////////////////////////// - Iterator Begin(); - - //////////////////////////////////////////////////////////// - /// \brief Return an iterator to the beginning of the string - /// - /// \return Read-only iterator to the beginning of the string characters - /// - /// \see end - /// - //////////////////////////////////////////////////////////// - ConstIterator Begin() const; - - //////////////////////////////////////////////////////////// - /// \brief Return an iterator to the end of the string - /// - /// The end iterator refers to 1 position past the last character; - /// thus it represents an invalid character and should never be - /// accessed. - /// - /// \return Read-write iterator to the end of the string characters - /// - /// \see begin - /// - //////////////////////////////////////////////////////////// - Iterator End(); - - //////////////////////////////////////////////////////////// - /// \brief Return an iterator to the end of the string - /// - /// The end iterator refers to 1 position past the last character; - /// thus it represents an invalid character and should never be - /// accessed. - /// - /// \return Read-only iterator to the end of the string characters - /// - /// \see begin - /// - //////////////////////////////////////////////////////////// - ConstIterator End() const; - - private: - - friend bool operator ==(const String& left, const String& right); - friend bool operator <(const String& left, const String& right); - - //////////////////////////////////////////////////////////// - // Member data - //////////////////////////////////////////////////////////// - std::basic_string mString; ///< Internal string of UTF-32 characters - }; - - //////////////////////////////////////////////////////////// - /// \relates String - /// \brief Overload of == operator to compare two UTF-32 strings - /// - /// \param left Left operand (a string) - /// \param right Right operand (a string) - /// - /// \return True if both strings are equal - /// - //////////////////////////////////////////////////////////// - bool operator ==(const String& left, const String& right); - - //////////////////////////////////////////////////////////// - /// \relates String - /// \brief Overload of != operator to compare two UTF-32 strings - /// - /// \param left Left operand (a string) - /// \param right Right operand (a string) - /// - /// \return True if both strings are different - /// - //////////////////////////////////////////////////////////// - bool operator !=(const String& left, const String& right); - - //////////////////////////////////////////////////////////// - /// \relates String - /// \brief Overload of < operator to compare two UTF-32 strings - /// - /// \param left Left operand (a string) - /// \param right Right operand (a string) - /// - /// \return True if \a left is lexicographically before \a right - /// - //////////////////////////////////////////////////////////// - bool operator <(const String& left, const String& right); - - //////////////////////////////////////////////////////////// - /// \relates String - /// \brief Overload of > operator to compare two UTF-32 strings - /// - /// \param left Left operand (a string) - /// \param right Right operand (a string) - /// - /// \return True if \a left is lexicographically after \a right - /// - //////////////////////////////////////////////////////////// - bool operator >(const String& left, const String& right); - - //////////////////////////////////////////////////////////// - /// \relates String - /// \brief Overload of <= operator to compare two UTF-32 strings - /// - /// \param left Left operand (a string) - /// \param right Right operand (a string) - /// - /// \return True if \a left is lexicographically before or equivalent to \a right - /// - //////////////////////////////////////////////////////////// - bool operator <=(const String& left, const String& right); - - //////////////////////////////////////////////////////////// - /// \relates String - /// \brief Overload of >= operator to compare two UTF-32 strings - /// - /// \param left Left operand (a string) - /// \param right Right operand (a string) - /// - /// \return True if \a left is lexicographically after or equivalent to \a right - /// - //////////////////////////////////////////////////////////// - bool operator >=(const String& left, const String& right); - - //////////////////////////////////////////////////////////// - /// \relates String - /// \brief Overload of binary + operator to concatenate two strings - /// - /// \param left Left operand (a string) - /// \param right Right operand (a string) - /// - /// \return Concatenated string - /// - //////////////////////////////////////////////////////////// - String operator +(const String& left, const String& right); - - #include "String.inl" - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/font/string.inl b/source/libs/asura-lib-core/font/string.inl deleted file mode 100644 index ef18228..0000000 --- a/source/libs/asura-lib-core/font/string.inl +++ /dev/null @@ -1,29 +0,0 @@ - -//////////////////////////////////////////////////////////// -template -String String::fromUtf8(T begin, T end) -{ - String string; - Utf8::toUtf32(begin, end, std::back_inserter(string.m_string)); - return string; -} - - -//////////////////////////////////////////////////////////// -template -String String::fromUtf16(T begin, T end) -{ - String string; - Utf16::toUtf32(begin, end, std::back_inserter(string.m_string)); - return string; -} - - -//////////////////////////////////////////////////////////// -template -String String::fromUtf32(T begin, T end) -{ - String string; - string.m_string.assign(begin, end); - return string; -} diff --git a/source/libs/asura-lib-core/font/ttf.cpp b/source/libs/asura-lib-core/font/ttf.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/font/ttf.h b/source/libs/asura-lib-core/font/ttf.h deleted file mode 100644 index 840b63e..0000000 --- a/source/libs/asura-lib-core/font/ttf.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef __ASURA_TTF_H__ -#define __ASURA_TTF_H__ - -namespace AsuraEngine -{ - namespace Text - { - - class TTF - { - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/font/utf.hpp b/source/libs/asura-lib-core/font/utf.hpp deleted file mode 100644 index 2e04ee4..0000000 --- a/source/libs/asura-lib-core/font/utf.hpp +++ /dev/null @@ -1,720 +0,0 @@ -#ifndef __ASURA_UTF_HPP__ -#define __ASURA_UTF_HPP__ - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - -namespace AsuraEngine -{ - namespace Text - { - - template - class Utf; - - //////////////////////////////////////////////////////////// - /// \brief Specialization of the Utf template for UTF-8 - /// - //////////////////////////////////////////////////////////// - template <> - class Utf<8> - { - public: - - //////////////////////////////////////////////////////////// - /// \brief Decode a single UTF-8 character - /// - /// Decoding a character means finding its unique 32-bits - /// code (called the codepoint) in the Unicode standard. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Codepoint of the decoded UTF-8 character - /// \param replacement Replacement character to use in case the UTF-8 sequence is invalid - /// - /// \return Iterator pointing to one past the last read element of the input sequence - /// - //////////////////////////////////////////////////////////// - template - static In Decode(In begin, In end, Uint32& output, Uint32 replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Encode a single UTF-8 character - /// - /// Encoding a character means converting a unique 32-bits - /// code (called the codepoint) in the target encoding, UTF-8. - /// - /// \param input Codepoint to encode as UTF-8 - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to UTF-8 (use 0 to skip them) - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out Encode(Uint32 input, Out output, Uint8 replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Advance to the next UTF-8 character - /// - /// This function is necessary for multi-elements encodings, as - /// a single character may use more than 1 storage element. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// - /// \return Iterator pointing to one past the last read element of the input sequence - /// - //////////////////////////////////////////////////////////// - template - static In Next(In begin, In end); - - //////////////////////////////////////////////////////////// - /// \brief Count the number of characters of a UTF-8 sequence - /// - /// This function is necessary for multi-elements encodings, as - /// a single character may use more than 1 storage element, thus the - /// total size can be different from (begin - end). - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// - /// \return Iterator pointing to one past the last read element of the input sequence - /// - //////////////////////////////////////////////////////////// - template - static std::size_t Count(In begin, In end); - - //////////////////////////////////////////////////////////// - /// \brief Convert an ANSI characters range to UTF-8 - /// - /// The current global locale will be used by default, unless you - /// pass a custom one in the \a locale parameter. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param locale Locale to use for conversion - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out FromAnsi(In begin, In end, Out output, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Convert a wide characters range to UTF-8 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out FromWide(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert a latin-1 (ISO-5589-1) characters range to UTF-8 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out FromLatin1(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert an UTF-8 characters range to ANSI characters - /// - /// The current global locale will be used by default, unless you - /// pass a custom one in the \a locale parameter. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to ANSI (use 0 to skip them) - /// \param locale Locale to use for conversion - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToAnsi(In begin, In end, Out output, char replacement = 0, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Convert an UTF-8 characters range to wide characters - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to wide (use 0 to skip them) - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToWide(In begin, In end, Out output, wchar_t replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Convert an UTF-8 characters range to latin-1 (ISO-5589-1) characters - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to wide (use 0 to skip them) - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToLatin1(In begin, In end, Out output, char replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Convert a UTF-8 characters range to UTF-8 - /// - /// This functions does nothing more than a direct copy; - /// it is defined only to provide the same interface as other - /// specializations of the sf::Utf<> template, and allow - /// generic code to be written on top of it. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToUtf8(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert a UTF-8 characters range to UTF-16 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToUtf16(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert a UTF-8 characters range to UTF-32 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToUtf32(In begin, In end, Out output); - }; - - //////////////////////////////////////////////////////////// - /// \brief Specialization of the Utf template for UTF-16 - /// - //////////////////////////////////////////////////////////// - template <> - class Utf<16> - { - public: - - //////////////////////////////////////////////////////////// - /// \brief Decode a single UTF-16 character - /// - /// Decoding a character means finding its unique 32-bits - /// code (called the codepoint) in the Unicode standard. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Codepoint of the decoded UTF-16 character - /// \param replacement Replacement character to use in case the UTF-8 sequence is invalid - /// - /// \return Iterator pointing to one past the last read element of the input sequence - /// - //////////////////////////////////////////////////////////// - template - static In Decode(In begin, In end, Uint32& output, Uint32 replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Encode a single UTF-16 character - /// - /// Encoding a character means converting a unique 32-bits - /// code (called the codepoint) in the target encoding, UTF-16. - /// - /// \param input Codepoint to encode as UTF-16 - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to UTF-16 (use 0 to skip them) - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out Encode(Uint32 input, Out output, Uint16 replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Advance to the next UTF-16 character - /// - /// This function is necessary for multi-elements encodings, as - /// a single character may use more than 1 storage element. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// - /// \return Iterator pointing to one past the last read element of the input sequence - /// - //////////////////////////////////////////////////////////// - template - static In Next(In begin, In end); - - //////////////////////////////////////////////////////////// - /// \brief Count the number of characters of a UTF-16 sequence - /// - /// This function is necessary for multi-elements encodings, as - /// a single character may use more than 1 storage element, thus the - /// total size can be different from (begin - end). - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// - /// \return Iterator pointing to one past the last read element of the input sequence - /// - //////////////////////////////////////////////////////////// - template - static std::size_t Count(In begin, In end); - - //////////////////////////////////////////////////////////// - /// \brief Convert an ANSI characters range to UTF-16 - /// - /// The current global locale will be used by default, unless you - /// pass a custom one in the \a locale parameter. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param locale Locale to use for conversion - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out FromAnsi(In begin, In end, Out output, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Convert a wide characters range to UTF-16 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out FromWide(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert a latin-1 (ISO-5589-1) characters range to UTF-16 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out FromLatin1(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert an UTF-16 characters range to ANSI characters - /// - /// The current global locale will be used by default, unless you - /// pass a custom one in the \a locale parameter. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to ANSI (use 0 to skip them) - /// \param locale Locale to use for conversion - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToAnsi(In begin, In end, Out output, char replacement = 0, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Convert an UTF-16 characters range to wide characters - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to wide (use 0 to skip them) - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToWide(In begin, In end, Out output, wchar_t replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Convert an UTF-16 characters range to latin-1 (ISO-5589-1) characters - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to wide (use 0 to skip them) - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToLatin1(In begin, In end, Out output, char replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Convert a UTF-16 characters range to UTF-8 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToUtf8(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert a UTF-16 characters range to UTF-16 - /// - /// This functions does nothing more than a direct copy; - /// it is defined only to provide the same interface as other - /// specializations of the sf::Utf<> template, and allow - /// generic code to be written on top of it. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToUtf16(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert a UTF-16 characters range to UTF-32 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToUtf32(In begin, In end, Out output); - }; - - //////////////////////////////////////////////////////////// - /// \brief Specialization of the Utf template for UTF-32 - /// - //////////////////////////////////////////////////////////// - template <> - class Utf<32> - { - public: - - //////////////////////////////////////////////////////////// - /// \brief Decode a single UTF-32 character - /// - /// Decoding a character means finding its unique 32-bits - /// code (called the codepoint) in the Unicode standard. - /// For UTF-32, the character value is the same as the codepoint. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Codepoint of the decoded UTF-32 character - /// \param replacement Replacement character to use in case the UTF-8 sequence is invalid - /// - /// \return Iterator pointing to one past the last read element of the input sequence - /// - //////////////////////////////////////////////////////////// - template - static In Decode(In begin, In end, Uint32& output, Uint32 replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Encode a single UTF-32 character - /// - /// Encoding a character means converting a unique 32-bits - /// code (called the codepoint) in the target encoding, UTF-32. - /// For UTF-32, the codepoint is the same as the character value. - /// - /// \param input Codepoint to encode as UTF-32 - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to UTF-32 (use 0 to skip them) - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out Encode(Uint32 input, Out output, Uint32 replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Advance to the next UTF-32 character - /// - /// This function is trivial for UTF-32, which can store - /// every character in a single storage element. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// - /// \return Iterator pointing to one past the last read element of the input sequence - /// - //////////////////////////////////////////////////////////// - template - static In Next(In begin, In end); - - //////////////////////////////////////////////////////////// - /// \brief Count the number of characters of a UTF-32 sequence - /// - /// This function is trivial for UTF-32, which can store - /// every character in a single storage element. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// - /// \return Iterator pointing to one past the last read element of the input sequence - /// - //////////////////////////////////////////////////////////// - template - static std::size_t Count(In begin, In end); - - //////////////////////////////////////////////////////////// - /// \brief Convert an ANSI characters range to UTF-32 - /// - /// The current global locale will be used by default, unless you - /// pass a custom one in the \a locale parameter. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param locale Locale to use for conversion - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out FromAnsi(In begin, In end, Out output, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Convert a wide characters range to UTF-32 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out FromWide(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert a latin-1 (ISO-5589-1) characters range to UTF-32 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out FromLatin1(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert an UTF-32 characters range to ANSI characters - /// - /// The current global locale will be used by default, unless you - /// pass a custom one in the \a locale parameter. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to ANSI (use 0 to skip them) - /// \param locale Locale to use for conversion - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToAnsi(In begin, In end, Out output, char replacement = 0, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Convert an UTF-32 characters range to wide characters - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to wide (use 0 to skip them) - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToWide(In begin, In end, Out output, wchar_t replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Convert an UTF-16 characters range to latin-1 (ISO-5589-1) characters - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement for characters not convertible to wide (use 0 to skip them) - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToLatin1(In begin, In end, Out output, char replacement = 0); - - //////////////////////////////////////////////////////////// - /// \brief Convert a UTF-32 characters range to UTF-8 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToUtf8(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert a UTF-32 characters range to UTF-16 - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToUtf16(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Convert a UTF-32 characters range to UTF-32 - /// - /// This functions does nothing more than a direct copy; - /// it is defined only to provide the same interface as other - /// specializations of the sf::Utf<> template, and allow - /// generic code to be written on top of it. - /// - /// \param begin Iterator pointing to the beginning of the input sequence - /// \param end Iterator pointing to the end of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out ToUtf32(In begin, In end, Out output); - - //////////////////////////////////////////////////////////// - /// \brief Decode a single ANSI character to UTF-32 - /// - /// This function does not exist in other specializations - /// of sf::Utf<>, it is defined for convenience (it is used by - /// several other conversion functions). - /// - /// \param input Input ANSI character - /// \param locale Locale to use for conversion - /// - /// \return Converted character - /// - //////////////////////////////////////////////////////////// - template - static Uint32 DecodeAnsi(In input, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Decode a single wide character to UTF-32 - /// - /// This function does not exist in other specializations - /// of sf::Utf<>, it is defined for convenience (it is used by - /// several other conversion functions). - /// - /// \param input Input wide character - /// - /// \return Converted character - /// - //////////////////////////////////////////////////////////// - template - static Uint32 DecodeWide(In input); - - //////////////////////////////////////////////////////////// - /// \brief Encode a single UTF-32 character to ANSI - /// - /// This function does not exist in other specializations - /// of sf::Utf<>, it is defined for convenience (it is used by - /// several other conversion functions). - /// - /// \param codepoint Iterator pointing to the beginning of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement if the input character is not convertible to ANSI (use 0 to skip it) - /// \param locale Locale to use for conversion - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out EncodeAnsi(Uint32 codepoint, Out output, char replacement = 0, const std::locale& locale = std::locale()); - - //////////////////////////////////////////////////////////// - /// \brief Encode a single UTF-32 character to wide - /// - /// This function does not exist in other specializations - /// of sf::Utf<>, it is defined for convenience (it is used by - /// several other conversion functions). - /// - /// \param codepoint Iterator pointing to the beginning of the input sequence - /// \param output Iterator pointing to the beginning of the output sequence - /// \param replacement Replacement if the input character is not convertible to wide (use 0 to skip it) - /// - /// \return Iterator to the end of the output sequence which has been written - /// - //////////////////////////////////////////////////////////// - template - static Out EncodeWide(Uint32 codepoint, Out output, wchar_t replacement = 0); - }; - -#include "Utf.inl" - - // Make typedefs to get rid of the template syntax - typedef Utf<8> Utf8; - typedef Utf<16> Utf16; - typedef Utf<32> Utf32; - - } // namespace sf - -} - - -#endif // SFML_UTF_HPP diff --git a/source/libs/asura-lib-core/font/utf.inl b/source/libs/asura-lib-core/font/utf.inl deleted file mode 100644 index 69a523b..0000000 --- a/source/libs/asura-lib-core/font/utf.inl +++ /dev/null @@ -1,752 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) -// -// This software is provided 'as-is', without any express or implied warranty. -// In no event will the authors be held liable for any damages arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it freely, -// subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; -// you must not claim that you wrote the original software. -// If you use this software in a product, an acknowledgment -// in the product documentation would be appreciated but is not required. -// -// 2. Altered source versions must be plainly marked as such, -// and must not be misrepresented as being the original software. -// -// 3. This notice may not be removed or altered from any source distribution. -// -//////////////////////////////////////////////////////////// - - -//////////////////////////////////////////////////////////// -// References: -// -// https://www.unicode.org/ -// https://www.unicode.org/Public/PROGRAMS/CVTUTF/ConvertUTF.c -// https://www.unicode.org/Public/PROGRAMS/CVTUTF/ConvertUTF.h -// https://people.w3.org/rishida/scripts/uniview/conversion -// -//////////////////////////////////////////////////////////// - - -//////////////////////////////////////////////////////////// -template -In Utf<8>::Decode(In begin, In end, Uint32& output, Uint32 replacement) -{ - // Some useful precomputed data - static const int trailing[256] = - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5 - }; - static const Uint32 offsets[6] = - { - 0x00000000, 0x00003080, 0x000E2080, 0x03C82080, 0xFA082080, 0x82082080 - }; - - // decode the character - int trailingBytes = trailing[static_cast(*begin)]; - if (begin + trailingBytes < end) - { - output = 0; - switch (trailingBytes) - { - case 5: output += static_cast(*begin++); output <<= 6; - case 4: output += static_cast(*begin++); output <<= 6; - case 3: output += static_cast(*begin++); output <<= 6; - case 2: output += static_cast(*begin++); output <<= 6; - case 1: output += static_cast(*begin++); output <<= 6; - case 0: output += static_cast(*begin++); - } - output -= offsets[trailingBytes]; - } - else - { - // Incomplete character - begin = end; - output = replacement; - } - - return begin; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<8>::Encode(Uint32 input, Out output, Uint8 replacement) -{ - // Some useful precomputed data - static const Uint8 firstBytes[7] = - { - 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC - }; - - // encode the character - if ((input > 0x0010FFFF) || ((input >= 0xD800) && (input <= 0xDBFF))) - { - // Invalid character - if (replacement) - *output++ = replacement; - } - else - { - // Valid character - - // Get the number of bytes to write - std::size_t bytestoWrite = 1; - if (input < 0x80) bytestoWrite = 1; - else if (input < 0x800) bytestoWrite = 2; - else if (input < 0x10000) bytestoWrite = 3; - else if (input <= 0x0010FFFF) bytestoWrite = 4; - - // Extract the bytes to write - Uint8 bytes[4]; - switch (bytestoWrite) - { - case 4: bytes[3] = static_cast((input | 0x80) & 0xBF); input >>= 6; - case 3: bytes[2] = static_cast((input | 0x80) & 0xBF); input >>= 6; - case 2: bytes[1] = static_cast((input | 0x80) & 0xBF); input >>= 6; - case 1: bytes[0] = static_cast (input | firstBytes[bytestoWrite]); - } - - // Add them to the output - output = std::copy(bytes, bytes + bytestoWrite, output); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -In Utf<8>::Next(In begin, In end) -{ - Uint32 codepoint; - return Decode(begin, end, codepoint); -} - - -//////////////////////////////////////////////////////////// -template -std::size_t Utf<8>::Count(In begin, In end) -{ - std::size_t length = 0; - while (begin < end) - { - begin = Next(begin, end); - ++length; - } - - return length; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<8>::FromAnsi(In begin, In end, Out output, const std::locale& locale) -{ - while (begin < end) - { - Uint32 codepoint = Utf<32>::DecodeAnsi(*begin++, locale); - output = Encode(codepoint, output); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<8>::FromWide(In begin, In end, Out output) -{ - while (begin < end) - { - Uint32 codepoint = Utf<32>::DecodeWide(*begin++); - output = Encode(codepoint, output); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<8>::FromLatin1(In begin, In end, Out output) -{ - // Latin-1 is directly compatible with Unicode encodings, - // and can thus be treated as (a sub-range of) UTF-32 - while (begin < end) - output = Encode(*begin++, output); - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<8>::ToAnsi(In begin, In end, Out output, char replacement, const std::locale& locale) -{ - while (begin < end) - { - Uint32 codepoint; - begin = Decode(begin, end, codepoint); - output = Utf<32>::EncodeAnsi(codepoint, output, replacement, locale); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<8>::ToWide(In begin, In end, Out output, wchar_t replacement) -{ - while (begin < end) - { - Uint32 codepoint; - begin = Decode(begin, end, codepoint); - output = Utf<32>::EncodeWide(codepoint, output, replacement); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<8>::ToLatin1(In begin, In end, Out output, char replacement) -{ - // Latin-1 is directly compatible with Unicode encodings, - // and can thus be treated as (a sub-range of) UTF-32 - while (begin < end) - { - Uint32 codepoint; - begin = Decode(begin, end, codepoint); - *output++ = codepoint < 256 ? static_cast(codepoint) : replacement; - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<8>::ToUtf8(In begin, In end, Out output) -{ - return std::copy(begin, end, output); -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<8>::ToUtf16(In begin, In end, Out output) -{ - while (begin < end) - { - Uint32 codepoint; - begin = Decode(begin, end, codepoint); - output = Utf<16>::Encode(codepoint, output); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<8>::ToUtf32(In begin, In end, Out output) -{ - while (begin < end) - { - Uint32 codepoint; - begin = Decode(begin, end, codepoint); - *output++ = codepoint; - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -In Utf<16>::Decode(In begin, In end, Uint32& output, Uint32 replacement) -{ - Uint16 first = *begin++; - - // If it's a surrogate pair, first convert to a single UTF-32 character - if ((first >= 0xD800) && (first <= 0xDBFF)) - { - if (begin < end) - { - Uint32 second = *begin++; - if ((second >= 0xDC00) && (second <= 0xDFFF)) - { - // The second element is valid: convert the two elements to a UTF-32 character - output = ((first - 0xD800) << 10) + (second - 0xDC00) + 0x0010000; - } - else - { - // Invalid character - output = replacement; - } - } - else - { - // Invalid character - begin = end; - output = replacement; - } - } - else - { - // We can make a direct copy - output = first; - } - - return begin; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<16>::Encode(Uint32 input, Out output, Uint16 replacement) -{ - if (input <= 0xFFFF) - { - // The character can be copied directly, we just need to check if it's in the valid range - if ((input >= 0xD800) && (input <= 0xDFFF)) - { - // Invalid character (this range is reserved) - if (replacement) - *output++ = replacement; - } - else - { - // Valid character directly convertible to a single UTF-16 character - *output++ = static_cast(input); - } - } - else if (input > 0x0010FFFF) - { - // Invalid character (greater than the maximum Unicode value) - if (replacement) - *output++ = replacement; - } - else - { - // The input character will be converted to two UTF-16 elements - input -= 0x0010000; - *output++ = static_cast((input >> 10) + 0xD800); - *output++ = static_cast((input & 0x3FFUL) + 0xDC00); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -In Utf<16>::Next(In begin, In end) -{ - Uint32 codepoint; - return Decode(begin, end, codepoint); -} - - -//////////////////////////////////////////////////////////// -template -std::size_t Utf<16>::Count(In begin, In end) -{ - std::size_t length = 0; - while (begin < end) - { - begin = Next(begin, end); - ++length; - } - - return length; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<16>::FromAnsi(In begin, In end, Out output, const std::locale& locale) -{ - while (begin < end) - { - Uint32 codepoint = Utf<32>::DecodeAnsi(*begin++, locale); - output = Encode(codepoint, output); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<16>::FromWide(In begin, In end, Out output) -{ - while (begin < end) - { - Uint32 codepoint = Utf<32>::DecodeWide(*begin++); - output = Encode(codepoint, output); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<16>::FromLatin1(In begin, In end, Out output) -{ - // Latin-1 is directly compatible with Unicode encodings, - // and can thus be treated as (a sub-range of) UTF-32 - return std::copy(begin, end, output); -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<16>::ToAnsi(In begin, In end, Out output, char replacement, const std::locale& locale) -{ - while (begin < end) - { - Uint32 codepoint; - begin = Decode(begin, end, codepoint); - output = Utf<32>::EncodeAnsi(codepoint, output, replacement, locale); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<16>::ToWide(In begin, In end, Out output, wchar_t replacement) -{ - while (begin < end) - { - Uint32 codepoint; - begin = Decode(begin, end, codepoint); - output = Utf<32>::EncodeWide(codepoint, output, replacement); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<16>::ToLatin1(In begin, In end, Out output, char replacement) -{ - // Latin-1 is directly compatible with Unicode encodings, - // and can thus be treated as (a sub-range of) UTF-32 - while (begin < end) - { - *output++ = *begin < 256 ? static_cast(*begin) : replacement; - begin++; - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<16>::ToUtf8(In begin, In end, Out output) -{ - while (begin < end) - { - Uint32 codepoint; - begin = Decode(begin, end, codepoint); - output = Utf<8>::Encode(codepoint, output); - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<16>::ToUtf16(In begin, In end, Out output) -{ - return std::copy(begin, end, output); -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<16>::ToUtf32(In begin, In end, Out output) -{ - while (begin < end) - { - Uint32 codepoint; - begin = Decode(begin, end, codepoint); - *output++ = codepoint; - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -In Utf<32>::Decode(In begin, In /*end*/, Uint32& output, Uint32 /*replacement*/) -{ - output = *begin++; - return begin; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::Encode(Uint32 input, Out output, Uint32 /*replacement*/) -{ - *output++ = input; - return output; -} - - -//////////////////////////////////////////////////////////// -template -In Utf<32>::Next(In begin, In /*end*/) -{ - return ++begin; -} - - -//////////////////////////////////////////////////////////// -template -std::size_t Utf<32>::Count(In begin, In end) -{ - return begin - end; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::FromAnsi(In begin, In end, Out output, const std::locale& locale) -{ - while (begin < end) - *output++ = DecodeAnsi(*begin++, locale); - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::FromWide(In begin, In end, Out output) -{ - while (begin < end) - *output++ = DecodeWide(*begin++); - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::FromLatin1(In begin, In end, Out output) -{ - // Latin-1 is directly compatible with Unicode encodings, - // and can thus be treated as (a sub-range of) UTF-32 - return std::copy(begin, end, output); -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::ToAnsi(In begin, In end, Out output, char replacement, const std::locale& locale) -{ - while (begin < end) - output = EncodeAnsi(*begin++, output, replacement, locale); - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::ToWide(In begin, In end, Out output, wchar_t replacement) -{ - while (begin < end) - output = EncodeWide(*begin++, output, replacement); - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::ToLatin1(In begin, In end, Out output, char replacement) -{ - // Latin-1 is directly compatible with Unicode encodings, - // and can thus be treated as (a sub-range of) UTF-32 - while (begin < end) - { - *output++ = *begin < 256 ? static_cast(*begin) : replacement; - begin++; - } - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::ToUtf8(In begin, In end, Out output) -{ - while (begin < end) - output = Utf<8>::Encode(*begin++, output); - - return output; -} - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::ToUtf16(In begin, In end, Out output) -{ - while (begin < end) - output = Utf<16>::Encode(*begin++, output); - - return output; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::ToUtf32(In begin, In end, Out output) -{ - return std::copy(begin, end, output); -} - - -//////////////////////////////////////////////////////////// -template -Uint32 Utf<32>::DecodeAnsi(In input, const std::locale& locale) -{ - // On Windows, GCC's standard library (glibc++) has almost - // no support for Unicode stuff. As a consequence, in this - // context we can only use the default locale and ignore - // the one passed as parameter. - - #if defined(SFML_SYSTEM_WINDOWS) && /* if Windows ... */ \ - (defined(__GLIBCPP__) || defined (__GLIBCXX__)) && /* ... and standard library is glibc++ ... */ \ - !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) /* ... and STLPort is not used on top of it */ - - (void)locale; // to avoid warnings - - wchar_t character = 0; - mbtowc(&character, &input, 1); - return static_cast(character); - - #else - - // Get the facet of the locale which deals with character conversion - const std::ctype& facet = std::use_facet< std::ctype >(locale); - - // Use the facet to convert each character of the input string - return static_cast(facet.widen(input)); - - #endif -} - - -//////////////////////////////////////////////////////////// -template -Uint32 Utf<32>::DecodeWide(In input) -{ - // The encoding of wide characters is not well defined and is left to the system; - // however we can safely assume that it is UCS-2 on Windows and - // UCS-4 on Unix systems. - // In both cases, a simple copy is enough (UCS-2 is a subset of UCS-4, - // and UCS-4 *is* UTF-32). - - return input; -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::EncodeAnsi(Uint32 codepoint, Out output, char replacement, const std::locale& locale) -{ - // On Windows, gcc's standard library (glibc++) has almost - // no support for Unicode stuff. As a consequence, in this - // context we can only use the default locale and ignore - // the one passed as parameter. - - #if defined(SFML_SYSTEM_WINDOWS) && /* if Windows ... */ \ - (defined(__GLIBCPP__) || defined (__GLIBCXX__)) && /* ... and standard library is glibc++ ... */ \ - !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) /* ... and STLPort is not used on top of it */ - - (void)locale; // to avoid warnings - - char character = 0; - if (wctomb(&character, static_cast(codepoint)) >= 0) - *output++ = character; - else if (replacement) - *output++ = replacement; - - return output; - - #else - - // Get the facet of the locale which deals with character conversion - const std::ctype& facet = std::use_facet< std::ctype >(locale); - - // Use the facet to convert each character of the input string - *output++ = facet.narrow(static_cast(codepoint), replacement); - - return output; - - #endif -} - - -//////////////////////////////////////////////////////////// -template -Out Utf<32>::EncodeWide(Uint32 codepoint, Out output, wchar_t replacement) -{ - // The encoding of wide characters is not well defined and is left to the system; - // however we can safely assume that it is UCS-2 on Windows and - // UCS-4 on Unix systems. - // For UCS-2 we need to check if the source characters fits in (UCS-2 is a subset of UCS-4). - // For UCS-4 we can do a direct copy (UCS-4 *is* UTF-32). - - switch (sizeof(wchar_t)) - { - case 4: - { - *output++ = static_cast(codepoint); - break; - } - - default: - { - if ((codepoint <= 0xFFFF) && ((codepoint < 0xD800) || (codepoint > 0xDFFF))) - { - *output++ = static_cast(codepoint); - } - else if (replacement) - { - *output++ = replacement; - } - break; - } - } - - return output; -} diff --git a/source/libs/asura-lib-core/graphics/binding/_canvas.cpp b/source/libs/asura-lib-core/graphics/binding/_canvas.cpp deleted file mode 100644 index 7927995..0000000 --- a/source/libs/asura-lib-core/graphics/binding/_canvas.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "../canvas.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Graphics - { - - LUAX_REGISTRY(Canvas) - { - LUAX_REGISTER_METHODS(state, - { "SetSize", _SetSize }, - { "Bind", _Bind }, - { "Unbind", _Unbind } - ); - } - - LUAX_POSTPROCESS(Canvas) - { - - } - - // canvas:SetSize() - LUAX_IMPL_METHOD(Canvas, _SetSize) - { - LUAX_PREPARE(L, Canvas); - - } - - // canvas:Bind() - LUAX_IMPL_METHOD(Canvas, _Bind) - { - LUAX_PREPARE(L, Canvas); - - } - - // canvas:Unbind() - LUAX_IMPL_METHOD(Canvas, _Unbind) - { - LUAX_PREPARE(L, Canvas); - - } - - } -} diff --git a/source/libs/asura-lib-core/graphics/binding/_color.cpp b/source/libs/asura-lib-core/graphics/binding/_color.cpp deleted file mode 100644 index 11e80a1..0000000 --- a/source/libs/asura-lib-core/graphics/binding/_color.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include "../color.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Graphics - { - - LUAX_REGISTRY(Color) - { - LUAX_REGISTER_METHODS(state, - { "ToColor32", _ToColor32 }, - { "SetColor", _SetColor }, - { "GetColor", _GetColor }, - { "Multiply", _Multiply } - ); - } - - LUAX_POSTPROCESS(Color) - { - - } - - // color:ToColor32() - LUAX_IMPL_METHOD(Color, _ToColor32) - { - LUAX_PREPARE(L, Color); - - } - - // color:SetColor() - LUAX_IMPL_METHOD(Color, _SetColor) - { - LUAX_PREPARE(L, Color); - - } - - // color:GetColor() - LUAX_IMPL_METHOD(Color, _GetColor) - { - LUAX_PREPARE(L, Color); - - } - - // color:Multiply() - LUAX_IMPL_METHOD(Color, _Multiply) - { - LUAX_PREPARE(L, Color); - - } - - } -} diff --git a/source/libs/asura-lib-core/graphics/binding/_color32.cpp b/source/libs/asura-lib-core/graphics/binding/_color32.cpp deleted file mode 100644 index 7095866..0000000 --- a/source/libs/asura-lib-core/graphics/binding/_color32.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include "../color32.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Graphics - { - - LUAX_REGISTRY(Color32) - { - LUAX_REGISTER_METHODS(state, - { "ToColor", _ToColor }, - { "GetRed", _GetRed }, - { "GetGreen", _GetGreen }, - { "GetBlue", _GetBlue }, - { "GetAlpha", _GetAlpha }, - { "Multiply", _Multiply }, - { "Index", _Index }, - { "NewIndex", _NewIndex } - ); - } - - LUAX_POSTPROCESS(Color32) - { - - } - - // color32:ToColor() - LUAX_IMPL_METHOD(Color32, _ToColor) - { - LUAX_PREPARE(L, Color32); - - } - - // color32:GetRed() - LUAX_IMPL_METHOD(Color32, _GetRed) - { - LUAX_PREPARE(L, Color32); - - } - - // color32:GetGreen() - LUAX_IMPL_METHOD(Color32, _GetGreen) - { - LUAX_PREPARE(L, Color32); - - } - - // color32:GetBlue() - LUAX_IMPL_METHOD(Color32, _GetBlue) - { - LUAX_PREPARE(L, Color32); - - } - - // color32:GetAlpha() - LUAX_IMPL_METHOD(Color32, _GetAlpha) - { - LUAX_PREPARE(L, Color32); - - } - - // color32:Multiply() - LUAX_IMPL_METHOD(Color32, _Multiply) - { - LUAX_PREPARE(L, Color32); - - } - - // color32:Index() - LUAX_IMPL_METHOD(Color32, _Index) - { - LUAX_PREPARE(L, Color32); - - } - - // color32:NewIndex() - LUAX_IMPL_METHOD(Color32, _NewIndex) - { - LUAX_PREPARE(L, Color32); - - } - - } -} diff --git a/source/libs/asura-lib-core/graphics/binding/_image.cpp b/source/libs/asura-lib-core/graphics/binding/_image.cpp deleted file mode 100644 index cb008d3..0000000 --- a/source/libs/asura-lib-core/graphics/binding/_image.cpp +++ /dev/null @@ -1,99 +0,0 @@ -#include "../image.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Graphics - { - - LUAX_REGISTRY(Image) - { - LUAX_REGISTER_METHODS(state, - { "New", _New }, - { "Load", _Load }, - { "GetWidth", _GetWidth }, - { "GetHeight", _GetHeight }, - { "GetSize", _GetSize }, - { "GetPixel", _GetPixel }, - { "Render", _Render } - ); - } - - LUAX_POSTPROCESS(Image) - { - - } - - // image = Image.New() - LUAX_IMPL_METHOD(Image, _New) - { - LUAX_STATE(L); - - Image* image = new Image(); - image->PushLuaxUserdata(state); - return 0; - } - - // successed = image:Load(image_data) - LUAX_IMPL_METHOD(Image, _Load) - { - LUAX_PREPARE(L, Image); - - ImageData* imgdata = state.CheckUserdata(2); - bool loaded = self->Load(imgdata); - state.Push(loaded); - return 1; - } - - // width = image:GetWidth() - LUAX_IMPL_METHOD(Image, _GetWidth) - { - LUAX_PREPARE(L, Image); - - state.Push(self->GetWidth()); - return 1; - } - - // height = image:GetHeight() - LUAX_IMPL_METHOD(Image, _GetHeight) - { - LUAX_PREPARE(L, Image); - - state.Push(self->GetHeight()); - return 1; - } - - // w, h = image:GetSize() - LUAX_IMPL_METHOD(Image, _GetSize) - { - LUAX_PREPARE(L, Image); - - Math::Vector2u size = self->GetSize(); - state.Push(size.x); - state.Push(size.y); - return 2; - } - - // color32 = image:GetPixel(x, y) - LUAX_IMPL_METHOD(Image, _GetPixel) - { - LUAX_PREPARE(L, Image); - - uint x = state.CheckValue(2); - uint y = state.CheckValue(3); - Color32* c32 = new Color32(self->GetPixel(x, y)); - c32->PushLuaxUserdata(state); - return 1; - } - - // image:Render() - LUAX_IMPL_METHOD(Image, _Render) - { - LUAX_PREPARE(L, Image); - - return 0; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/binding/_image_data.cpp b/source/libs/asura-lib-core/graphics/binding/_image_data.cpp deleted file mode 100644 index 3ff38f9..0000000 --- a/source/libs/asura-lib-core/graphics/binding/_image_data.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "../image_data.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Graphics - { - - LUAX_REGISTRY(ImageData) - { - LUAX_REGISTER_METHODS(state, - { "New", _New }, - { "GetPixel", _GetPixel }, - { "GetSize", _GetSize }, - { "GetWidth", _GetWidth }, - { "GetHeight", _GetHeight }, - { "GetPixelFormat", _GetPixelFormat } - ); - } - - LUAX_POSTPROCESS(ImageData) - { - - } - - // ImageData.New() - LUAX_IMPL_METHOD(ImageData, _New) - { - LUAX_STATE(L); - - } - - // imagedata:GetPixel() - LUAX_IMPL_METHOD(ImageData, _GetPixel) - { - LUAX_PREPARE(L, ImageData); - - } - - // imagedata:GetSize() - LUAX_IMPL_METHOD(ImageData, _GetSize) - { - LUAX_PREPARE(L, ImageData); - - } - - // imagedata:GetWidth() - LUAX_IMPL_METHOD(ImageData, _GetWidth) - { - LUAX_PREPARE(L, ImageData); - - } - - // imagedata:GetHeight() - LUAX_IMPL_METHOD(ImageData, _GetHeight) - { - LUAX_PREPARE(L, ImageData); - - } - - // imagedata:GetPixelFormat() - LUAX_IMPL_METHOD(ImageData, _GetPixelFormat) - { - LUAX_PREPARE(L, ImageData); - - } - - } -} diff --git a/source/libs/asura-lib-core/graphics/binding/_image_decode_task.cpp b/source/libs/asura-lib-core/graphics/binding/_image_decode_task.cpp deleted file mode 100644 index 76b544b..0000000 --- a/source/libs/asura-lib-core/graphics/binding/_image_decode_task.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "../image_decode_task.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Graphics - { - - LUAX_REGISTRY(ImageDecodeTask) - { - - } - - LUAX_POSTPROCESS(ImageDecodeTask) - { - - } - - } -} diff --git a/source/libs/asura-lib-core/graphics/binding/_mesh2d.cpp b/source/libs/asura-lib-core/graphics/binding/_mesh2d.cpp deleted file mode 100644 index 07e9f12..0000000 --- a/source/libs/asura-lib-core/graphics/binding/_mesh2d.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "../mesh2d.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Graphics - { - - LUAX_REGISTRY(Mesh2D) - { - - } - - LUAX_POSTPROCESS(Mesh2D) - { - - } - - } -} diff --git a/source/libs/asura-lib-core/graphics/binding/_shader.cpp b/source/libs/asura-lib-core/graphics/binding/_shader.cpp deleted file mode 100644 index a06e54b..0000000 --- a/source/libs/asura-lib-core/graphics/binding/_shader.cpp +++ /dev/null @@ -1,126 +0,0 @@ -#include "../shader.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Graphics - { - - LUAX_REGISTRY(Shader) - { - LUAX_REGISTER_METHODS(state, - { "New", _New }, - { "Use", _Use }, - { "Unuse", _Unuse }, - { "Load", _Load }, - { "HasUniform", _HasUniform }, - { "GetUniformLocation", _GetUniformLocation }, - { "SetBuiltInUniforms", _SetBuiltInUniforms }, - { "SetUniformFloat", _SetUniformFloat }, - { "SetUniformTexture", _SetUniformTexture }, - { "SetUniformVector2", _SetUniformVector2 }, - { "SetUniformVector3", _SetUniformVector3 }, - { "SetUniformVector4", _SetUniformVector4 }, - { "SetUniformColor", _SetUniformColor } - ); - } - - LUAX_POSTPROCESS(Shader) - { - - } - - // Shader.New() - LUAX_IMPL_METHOD(Shader, _New) - { - LUAX_STATE(L); - - } - - // shader:Use() - LUAX_IMPL_METHOD(Shader, _Use) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:Unuse() - LUAX_IMPL_METHOD(Shader, _Unuse) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:Load() - LUAX_IMPL_METHOD(Shader, _Load) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:HasUniform() - LUAX_IMPL_METHOD(Shader, _HasUniform) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:GetUniformLocation() - LUAX_IMPL_METHOD(Shader, _GetUniformLocation) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:SetBuiltInUniforms() - LUAX_IMPL_METHOD(Shader, _SetBuiltInUniforms) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:SetUniformFloat() - LUAX_IMPL_METHOD(Shader, _SetUniformFloat) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:SetUniformTexture() - LUAX_IMPL_METHOD(Shader, _SetUniformTexture) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:SetUniformVector2() - LUAX_IMPL_METHOD(Shader, _SetUniformVector2) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:SetUniformVector3() - LUAX_IMPL_METHOD(Shader, _SetUniformVector3) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:SetUniformVector4() - LUAX_IMPL_METHOD(Shader, _SetUniformVector4) - { - LUAX_PREPARE(L, Shader); - - } - - // shader:SetUniformColor() - LUAX_IMPL_METHOD(Shader, _SetUniformColor) - { - LUAX_PREPARE(L, Shader); - - } - - } -} diff --git a/source/libs/asura-lib-core/graphics/binding/_sprite_batch.cpp b/source/libs/asura-lib-core/graphics/binding/_sprite_batch.cpp deleted file mode 100644 index 8556c02..0000000 --- a/source/libs/asura-lib-core/graphics/binding/_sprite_batch.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "../sprite_batch.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Graphics - { - - LUAX_REGISTRY(SpriteBatch) - { - - } - - LUAX_POSTPROCESS(SpriteBatch) - { - - } - - } -} diff --git a/source/libs/asura-lib-core/graphics/binding/_window.cpp b/source/libs/asura-lib-core/graphics/binding/_window.cpp deleted file mode 100644 index fc74d6c..0000000 --- a/source/libs/asura-lib-core/graphics/binding/_window.cpp +++ /dev/null @@ -1,103 +0,0 @@ -#include "../window.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Graphics - { - - LUAX_REGISTRY(Window) - { - LUAX_REGISTER_METHODS(state, - { "Show", _Show }, - { "Hide", _Hide }, - { "SetResolution", _SetResolution }, - { "SetFullScreen", _SetFullScreen }, - { "SetTitle", _SetTitle }, - { "SetWindowStyle", _SetWindowStyle }, - { "Clear", _Clear }, - { "Draw", _Draw }, - { "SwapRenderBuffer", _SwapRenderBuffer } - ); - } - - LUAX_POSTPROCESS(Window) - { - - } - - // window:Show() - LUAX_IMPL_METHOD(Window, _Show) - { - LUAX_PREPARE(L, Window); - - return 0; - } - - // window:Hide() - LUAX_IMPL_METHOD(Window, _Hide) - { - LUAX_PREPARE(L, Window); - - return 0; - } - - // window:SetResolution() - LUAX_IMPL_METHOD(Window, _SetResolution) - { - LUAX_PREPARE(L, Window); - - return 0; - } - - // window:SetFullScreen() - LUAX_IMPL_METHOD(Window, _SetFullScreen) - { - LUAX_PREPARE(L, Window); - - return 0; - } - - // window:SetTitle() - LUAX_IMPL_METHOD(Window, _SetTitle) - { - LUAX_PREPARE(L, Window); - - return 0; - } - - // window:SetWindowStyle() - LUAX_IMPL_METHOD(Window, _SetWindowStyle) - { - LUAX_PREPARE(L, Window); - - return 0; - } - - // window:Clear() - LUAX_IMPL_METHOD(Window, _Clear) - { - LUAX_PREPARE(L, Window); - - return 0; - } - - // window:Draw() - LUAX_IMPL_METHOD(Window, _Draw) - { - LUAX_PREPARE(L, Window); - - return 0; - } - - // window:SwapRenderBuffer() - LUAX_IMPL_METHOD(Window, _SwapRenderBuffer) - { - LUAX_PREPARE(L, Window); - - return 0; - } - - } -} diff --git a/source/libs/asura-lib-core/graphics/blend_mode.h b/source/libs/asura-lib-core/graphics/blend_mode.h deleted file mode 100644 index 775cc45..0000000 --- a/source/libs/asura-lib-core/graphics/blend_mode.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef __ASURA_ENGINE_BLEND_MODE_H__ -#define __ASURA_ENGINE_BLEND_MODE_H__ - -namespace AsuraEngine -{ - namespace Graphics - { - - enum BlendMode - { - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/canvas.cpp b/source/libs/asura-lib-core/graphics/canvas.cpp deleted file mode 100644 index 61787b6..0000000 --- a/source/libs/asura-lib-core/graphics/canvas.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "Canvas.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - Canvas::Canvas() - : Texture() - , mWidth(0) - , mHeight(0) - { - glGenFramebuffers(1, &mFBO); - GLint current_fbo; - glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, ¤t_fbo); - glBindFramebuffer(GL_FRAMEBUFFER, mFBO); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mTextureHandle, 0); - glBindFramebuffer(GL_FRAMEBUFFER, current_fbo); - } - - void Canvas::SetSize(uint w, uint h) - { - GLint current_tex; - glGetIntegerv(GL_TEXTURE_BINDING_2D, ¤t_tex); - glBindTexture(GL_TEXTURE_2D, mTextureHandle); - - glBindTexture(GL_TEXTURE_2D, current_tex); - } - - void Canvas::Bind() - { - - } - - void Canvas::Unbind() - { - - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/canvas.h b/source/libs/asura-lib-core/graphics/canvas.h deleted file mode 100644 index 5b188ca..0000000 --- a/source/libs/asura-lib-core/graphics/canvas.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef __ASURA_ENGINE_CANVAS_H__ -#define __ASURA_ENGINE_CANVAS_H__ - -#include -#include -#include - -#include "gl.h" -#include "texture.h" -#include "render_target.h" -#include "render_state.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - /// - /// Canvas也可以称为render texture,自身也可以作为texture渲染。 - /// - class Canvas ASURA_FINAL - : public Drawable - , public RenderTarget - , public Scripting::Portable - { - public: - - Canvas(); - - ~Canvas(); - - /// - /// 设置render texture的大小 - /// - void SetSize(uint w, uint h); - - void Clear(const Color& col = Color::Black) override; - - void Clear(const Math::Recti& quad, const Color& col = Color::Black) override; - - void Render(const RenderTarget* rt, const Math::Vector2i& pos, const Math::Vector2i& scale, const Math::Vector2i& center, float rot); - - void Render(const RenderTarget* rt, const Math::Rectf& quad, const Math::Vector2i& pos, const Math::Vector2i& scale, const Math::Vector2i& center, float rot); - - void Draw(const Drawable* texture, const RenderState& state); - - void Draw(const Drawable* texture, const Math::Recti& quad, const RenderState& state); - - private: - - /// - /// Frame buffer object id. - /// - GLuint mFBO; - - /// - /// canvas的大小 - /// - uint mWidth, mHeight; - - public: - - //---------------------------------------------------------------------------------------------------------- - - LUAX_DECL_FACTORY(SimCanvas); - - LUAX_DECL_METHOD(_SetSize); - LUAX_DECL_METHOD(_Bind); - LUAX_DECL_METHOD(_Unbind); - - //---------------------------------------------------------------------------------------------------------- - - }; - - /// - /// Canvas别名为RenderTexture - /// - using RenderTexture = Canvas; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/color.cpp b/source/libs/asura-lib-core/graphics/color.cpp deleted file mode 100644 index 4d3691e..0000000 --- a/source/libs/asura-lib-core/graphics/color.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include "color.h" -#include "color32.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - Color::Color() - { - r = g = b = a = 0; - } - - Color::Color(const Color& c) - { - r = c.r; - g = c.g; - b = c.b; - a = c.a; - } - - Color::Color(float r, float g, float b, float a) - { - this->r = r; - this->g = g; - this->b = b; - this->a = a; - } - - Color::Color(const Color32& c) - { - r = c.r / 255.f; - g = c.g / 255.f; - b = c.b / 255.f; - a = c.a / 255.f; - } - - Color Color::operator *(const Color& c) - { - r *= c.r; - g *= c.g; - b *= c.b; - a *= c.a; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/color.h b/source/libs/asura-lib-core/graphics/color.h deleted file mode 100644 index 607314b..0000000 --- a/source/libs/asura-lib-core/graphics/color.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef __ASURA_ENGINE_COLOR_H__ -#define __ASURA_ENGINE_COLOR_H__ - -#include - -#include "../core_config.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - class Color32; - - /// - /// 规范化颜色 - /// - class Color ASURA_FINAL - : public Scripting::Portable - { - public: - - static Color Black; - static Color White; - static Color Red; - static Color Green; - static Color Blue; - - Color(); - - Color(const Color& c); - - Color(float r, float g, float b, float a); - - Color(const Color32& c); - - ~Color(); - - Color operator *(const Color& c); - - float r, g, b, a; - - LUAX_DECL_FACTORY(Color); - - LUAX_DECL_METHOD(_ToColor32); - LUAX_DECL_METHOD(_SetColor); - LUAX_DECL_METHOD(_GetColor); - LUAX_DECL_METHOD(_Multiply); // 颜色乘法 - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/color32.cpp b/source/libs/asura-lib-core/graphics/color32.cpp deleted file mode 100644 index 0ebc77c..0000000 --- a/source/libs/asura-lib-core/graphics/color32.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "color.h" -#include "color32.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - Color32::Color32() - { - r = g = b = a = 0; - } - - Color32::Color32(const Color32& c) - { - r = c.r; - g = c.g; - b = c.b; - a = c.a; - } - - Color32::Color32(const Color& c) - { - r = 255.f * c.r; - g = 255.f * c.g; - b = 255.f * c.b; - a = 255.f * c.a; - } - - Color32::Color32(byte r, byte g, byte b, byte a) - { - this->r = r; - this->g = g; - this->b = b; - this->a = a; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/color32.h b/source/libs/asura-lib-core/graphics/color32.h deleted file mode 100644 index c64a9b9..0000000 --- a/source/libs/asura-lib-core/graphics/color32.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef __ASURA_ENGINE_COLOR32_H__ -#define __ASURA_ENGINE_COLOR32_H__ - -#include - -#include "../core_config.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - class Color; - - /// - /// 32bits颜色 - /// - class Color32 ASURA_FINAL - : public Scripting::Portable - { - public: - - LUAX_DECL_FACTORY(Color32); - - Color32(); - - ~Color32(); - - Color32(const Color32& c); - - Color32(const Color& c); - - Color32(byte r, byte g, byte b, byte a); - - byte r, g, b, a; - - LUAX_DECL_METHOD(_ToColor); - LUAX_DECL_METHOD(_GetRed); - LUAX_DECL_METHOD(_GetGreen); - LUAX_DECL_METHOD(_GetBlue); - LUAX_DECL_METHOD(_GetAlpha); - LUAX_DECL_METHOD(_Multiply); - LUAX_DECL_METHOD(_Index); //索引r,g,b,a - LUAX_DECL_METHOD(_NewIndex); //修改r,g,b,a - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/color_palette.h b/source/libs/asura-lib-core/graphics/color_palette.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/gif.cpp b/source/libs/asura-lib-core/graphics/gif.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/gif.h b/source/libs/asura-lib-core/graphics/gif.h deleted file mode 100644 index 8b89858..0000000 --- a/source/libs/asura-lib-core/graphics/gif.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __ASURA_GIF_H__ -#define __ASURA_GIF_H__ - -namespace AsuraEngine -{ - namespace Graphics - { - - /// - /// Gif - /// - class Gif - { - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/gl.cpp b/source/libs/asura-lib-core/graphics/gl.cpp deleted file mode 100644 index 7c68c8f..0000000 --- a/source/libs/asura-lib-core/graphics/gl.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include "../core_config.h" -#include "gl.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - bool OpenGL::instantiated = false; - - // 单例 - OpenGL gl; - - OpenGL::OpenGL() - { - ASSERT(!instantiated); - instantiated = true; - } - - OpenGL::~OpenGL() - { - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/gl.h b/source/libs/asura-lib-core/graphics/gl.h deleted file mode 100644 index bfc60ea..0000000 --- a/source/libs/asura-lib-core/graphics/gl.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef __ASURA_ENGINE_OPENGL_H__ -#define __ASURA_ENGINE_OPENGL_H__ - -#include "glad/glad.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - class Profiler; - - /// - /// 用来做一些opengl状态的追踪。 - /// - class OpenGL - { - public: - OpenGL(); - ~OpenGL(); - - private: - - friend class Profiler; - - /// - /// 控制opengl单例。 - /// - static bool instantiated; - - }; - - /// - /// OpenGL单例。 - /// - extern OpenGL gl; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/image.cpp b/source/libs/asura-lib-core/graphics/image.cpp deleted file mode 100644 index e704945..0000000 --- a/source/libs/asura-lib-core/graphics/image.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "Config.h" -#include "Image.h" -#include "GL.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - Image::Image() - { - } - - Image::~Image() - { - } - - //创建\更新纹理像素信息 - bool Image::Load(ImageData* data) - { - ASSERT(data); - - glBindTexture(GL_TEXTURE_2D, mTextureHandle); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, data->width, data->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data->pixels); - glBindTexture(GL_TEXTURE_2D, 0); - return true; - - RRA(data, mImageData); - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/image.h b/source/libs/asura-lib-core/graphics/image.h deleted file mode 100644 index 4d9787b..0000000 --- a/source/libs/asura-lib-core/graphics/image.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef __ASURA_ENGINE_IMAGE_H__ -#define __ASURA_ENGINE_IMAGE_H__ - -#include -#include -#include -#include -#include -#include - -#include "texture.h" -#include "color.h" -#include "color32.h" -#include "image_data.h" -#include "render_state.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - class ImageFactory; - - /// - /// Image是图片从内存中载入后,读取进游戏后保存的结果。一个Image在内存、显存中只会保存一 - /// 份,不会产生副本。需要特征化的区别image,如锚点位置,缩放和旋转角度,使用sprite。 - /// 是一个只读类。主要是考虑到editor和engine使用不同的封装。 - /// - class Image ASURA_FINAL - : public Drawable - , public Scripting::Portable - , public AEIO::Reloadable - { - public: - - LUAX_DECL_FACTORY(SimImage); - - Image(); - - ~Image(); - - /// - /// 从数据buffer构建image像素信息,如果mPixels不为空,先清空数据。用来重新构建image, - /// 使用glTexImage2D重新提交image的像素数据。 - /// - bool Load(ImageData* data); - - uint GetWidth(); - uint GetHeight(); - Math::Vector2u GetSize(); - - /// - /// 获得某一个位置的像素 - /// - Color32 GetPixel(uint x, uint y); - - void Render(const RenderTarget* rt, const RenderState& state) override; - - void Render(const RenderTarget* rt, const Math::Rectf& quad, const RenderState& state) override; - - private: - - ImageData* mImageData; - Luax::LuaxMemberRef mImageDataRef; - - Math::Vector2u mSize; - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_Load); - LUAX_DECL_METHOD(_GetWidth); - LUAX_DECL_METHOD(_GetHeight); - LUAX_DECL_METHOD(_GetSize); - LUAX_DECL_METHOD(_GetPixel); - LUAX_DECL_METHOD(_Render); - - }; - - } -} - -namespace AEGraphics = AsuraEngine::Graphics; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/image_data.cpp b/source/libs/asura-lib-core/graphics/image_data.cpp deleted file mode 100644 index b79dfab..0000000 --- a/source/libs/asura-lib-core/graphics/image_data.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include "image_data.h" -#include "png_decoder.h" -#include "stb_decoder.h" -#include "image_decoder.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - using namespace std; - - // 解析image的decoder,用来作为解析策略。 - list ImageData::ImageDecoders = { - new PNGDecoder(), // png - new STBDecoder() // jpeg, tga, bmp - }; - - ImageData::ImageData(const IO::DataBuffer& buffer) - : DecodedData(buffer) - { - } - - ImageData::~ImageData() - { - if (pixels) - delete[] pixels; - } - - /// - /// 解析,如果无法成功,抛出异常 - /// - void ImageData::Decode(const IO::DataBuffer& buffer) - { - for (ImageDecoder* decoder : ImageDecoders) - { - if (decoder->CanDecode(buffer)) - { - decoder->Decode(buffer, *this); - return; - } - } - } - - Color ImageData::GetPixel(uint x, uint y) - { - - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/image_data.h b/source/libs/asura-lib-core/graphics/image_data.h deleted file mode 100644 index 820e276..0000000 --- a/source/libs/asura-lib-core/graphics/image_data.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef __ASURA_ENGINE_IMAGEDATA_H__ -#define __ASURA_ENGINE_IMAGEDATA_H__ - -#include - -#include -#include -#include -#include - -#include "pixel_format.h" -#include "color.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - class ImageDecoder; - - class ImageData ASURA_FINAL - : public AEIO::DecodedData - , public Scripting::Portable - { - public: - - LUAX_DECL_FACTORY(ImageData); - - /// - /// 解析图片数据文件,并构建像素信息,如果解析失败,抛出异常 - /// - ImageData(const AEIO::DataBuffer& buffer); - ~ImageData(); - - void Load(const AEIO::DataBuffer& buffer); - void LoadAsync(const AEIO::DataBuffer& buffer, AEThreading::Thread* thread); - - Color GetPixel(uint x, uint y); - - uint width, height; - PixelFormat format; - std::size_t size; - byte* pixels; - - private: - - void Decode(const AEIO::DataBuffer& buffer) override; - - /// - /// 在第一次准备image data时构建所有提供的decoder。在几个decoders中间选择解析策略。 - /// - static std::list ImageDecoders; - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_GetPixel); - LUAX_DECL_METHOD(_GetSize); - LUAX_DECL_METHOD(_GetWidth); - LUAX_DECL_METHOD(_GetHeight); - LUAX_DECL_METHOD(_GetPixelFormat); - - }; - - } -} - -namespace AEGraphics = AsuraEngine::Graphics; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/image_decode_task.cpp b/source/libs/asura-lib-core/graphics/image_decode_task.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/image_decode_task.h b/source/libs/asura-lib-core/graphics/image_decode_task.h deleted file mode 100644 index a721b3e..0000000 --- a/source/libs/asura-lib-core/graphics/image_decode_task.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __ASURA_IMAGE_DECODE_TASK_H__ -#define __ASURA_IMAGE_DECODE_TASK_H__ - -#include -#include - -namespace AsuraEngine -{ - namespace Graphics - { - - class ImageDecodeTask - : public AEScripting::Portable - , public AEThreading::ThreadTask - { - public: - - LUAX_DECL_FACTORY(ImageDecodeTask); - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/image_decoder.h b/source/libs/asura-lib-core/graphics/image_decoder.h deleted file mode 100644 index 6f2049a..0000000 --- a/source/libs/asura-lib-core/graphics/image_decoder.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __ASURA_ENGINE_IMAGE_DECODER_H__ -#define __ASURA_ENGINE_IMAGE_DECODER_H__ - -#include - -#include "image_data.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - class ImageDecoder - { - public: - - ImageDecoder(); - virtual ~ImageDecoder(); - - /// - /// 判断内存是否能用本decoder解压 - /// - virtual bool CanDecode(const AEIO::DataBuffer& buffer) = 0; - - /// - /// 输入一个编码后的内存,输出一个解压后的Image data,如果解压失败返回nullptr - /// - virtual void Decode(const AEIO::DataBuffer& buffer, ImageData& data) = 0; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/mesh2d.cpp b/source/libs/asura-lib-core/graphics/mesh2d.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/mesh2d.h b/source/libs/asura-lib-core/graphics/mesh2d.h deleted file mode 100644 index 48b461d..0000000 --- a/source/libs/asura-lib-core/graphics/mesh2d.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __ASURA_ENGINE_MESH2D_H__ -#define __ASURA_ENGINE_MESH2D_H__ - -#include - -namespace AsuraEngine -{ - namespace Graphics - { - - /// - /// 2D mesh,用于做一些顶点动画。 - /// - class Mesh2D ASURA_FINAL - : public Scripting::Portable - { - public: - - Mesh2D(); - - ~Mesh2D(); - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/mesh2d_data.cpp b/source/libs/asura-lib-core/graphics/mesh2d_data.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/mesh2d_data.h b/source/libs/asura-lib-core/graphics/mesh2d_data.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/pixel_format.h b/source/libs/asura-lib-core/graphics/pixel_format.h deleted file mode 100644 index 8df07d5..0000000 --- a/source/libs/asura-lib-core/graphics/pixel_format.h +++ /dev/null @@ -1,91 +0,0 @@ -namespace AsuraEngine -{ - namespace Graphics - { - - /// - /// 像素格式 - /// - enum PixelFormat - { - PIXELFORMAT_UNKNOWN, - - // these are converted to an actual format by love - PIXELFORMAT_NORMAL, - PIXELFORMAT_HDR, - - // "regular" formats - PIXELFORMAT_R8, - PIXELFORMAT_RG8, - PIXELFORMAT_RGBA8, - PIXELFORMAT_sRGBA8, - PIXELFORMAT_R16, - PIXELFORMAT_RG16, - PIXELFORMAT_RGBA16, - PIXELFORMAT_R16F, - PIXELFORMAT_RG16F, - PIXELFORMAT_RGBA16F, - PIXELFORMAT_R32F, - PIXELFORMAT_RG32F, - PIXELFORMAT_RGBA32F, - - PIXELFORMAT_LA8, // Same as RG8, but accessed as (L, L, L, A) - - // packed formats - PIXELFORMAT_RGBA4, - PIXELFORMAT_RGB5A1, - PIXELFORMAT_RGB565, - PIXELFORMAT_RGB10A2, - PIXELFORMAT_RG11B10F, - - // depth/stencil formats - PIXELFORMAT_STENCIL8, - PIXELFORMAT_DEPTH16, - PIXELFORMAT_DEPTH24, - PIXELFORMAT_DEPTH32F, - PIXELFORMAT_DEPTH24_STENCIL8, - PIXELFORMAT_DEPTH32F_STENCIL8, - - // compressed formats - PIXELFORMAT_DXT1, - PIXELFORMAT_DXT3, - PIXELFORMAT_DXT5, - PIXELFORMAT_BC4, - PIXELFORMAT_BC4s, - PIXELFORMAT_BC5, - PIXELFORMAT_BC5s, - PIXELFORMAT_BC6H, - PIXELFORMAT_BC6Hs, - PIXELFORMAT_BC7, - PIXELFORMAT_PVR1_RGB2, - PIXELFORMAT_PVR1_RGB4, - PIXELFORMAT_PVR1_RGBA2, - PIXELFORMAT_PVR1_RGBA4, - PIXELFORMAT_ETC1, - PIXELFORMAT_ETC2_RGB, - PIXELFORMAT_ETC2_RGBA, - PIXELFORMAT_ETC2_RGBA1, - PIXELFORMAT_EAC_R, - PIXELFORMAT_EAC_Rs, - PIXELFORMAT_EAC_RG, - PIXELFORMAT_EAC_RGs, - PIXELFORMAT_ASTC_4x4, - PIXELFORMAT_ASTC_5x4, - PIXELFORMAT_ASTC_5x5, - PIXELFORMAT_ASTC_6x5, - PIXELFORMAT_ASTC_6x6, - PIXELFORMAT_ASTC_8x5, - PIXELFORMAT_ASTC_8x6, - PIXELFORMAT_ASTC_8x8, - PIXELFORMAT_ASTC_10x5, - PIXELFORMAT_ASTC_10x6, - PIXELFORMAT_ASTC_10x8, - PIXELFORMAT_ASTC_10x10, - PIXELFORMAT_ASTC_12x10, - PIXELFORMAT_ASTC_12x12, - - PIXELFORMAT_MAX_ENUM - }; - - } -} diff --git a/source/libs/asura-lib-core/graphics/png_decoder.cpp b/source/libs/asura-lib-core/graphics/png_decoder.cpp deleted file mode 100644 index f919090..0000000 --- a/source/libs/asura-lib-core/graphics/png_decoder.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "PNGDecoder.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - bool PNGDecoder::CanDecode(const Filesystem::DataBuffer& buffer) - { - return false; - } - - void PNGDecoder::Decode(const Filesystem::DataBuffer& buffer, ImageData& data) - { - - } - - } -} diff --git a/source/libs/asura-lib-core/graphics/png_decoder.h b/source/libs/asura-lib-core/graphics/png_decoder.h deleted file mode 100644 index bc871fa..0000000 --- a/source/libs/asura-lib-core/graphics/png_decoder.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __ASURA_ENGINE_PNGDECODER_H__ -#define __ASURA_ENGINE_PNGDECODER_H__ - -#include "image_decoder.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - /// - /// 使用lodepng解压png文件 - /// - class PNGDecoder ASURA_FINAL: public ImageDecoder - { - public: - - bool CanDecode(const AEIO::DataBuffer& buffer) override; - - void Decode(const AEIO::DataBuffer& buffer, ImageData& data) override; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/quad.cpp b/source/libs/asura-lib-core/graphics/quad.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/quad.h b/source/libs/asura-lib-core/graphics/quad.h deleted file mode 100644 index b7dd3d9..0000000 --- a/source/libs/asura-lib-core/graphics/quad.h +++ /dev/null @@ -1 +0,0 @@ -// Quad和rect的区别在于,rect是的边偏向于轴,quad不一定。 diff --git a/source/libs/asura-lib-core/graphics/render_state.h b/source/libs/asura-lib-core/graphics/render_state.h deleted file mode 100644 index 4d1831c..0000000 --- a/source/libs/asura-lib-core/graphics/render_state.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef __ASURA_ENGINE_RENDER_STATE_H__ -#define __ASURA_ENGINE_RENDER_STATE_H__ - -#include -#include - -#include "Shader.h" -#include "blend_mode.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - /// - /// 渲染当前纹理的方式 - /// - struct RenderState ASURA_FINAL - { - /// - /// 默认的render state - /// - static RenderState Default; - - RenderState(); - ~RenderState(); - - /// - /// 位置、缩放、中心位置和旋转 - /// - - Math::Transform transform; - - /// - /// 着色器 - /// - Shader* shader; - - /// - /// 混合方式 - /// - BlendMode blendMode; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/render_target.cpp b/source/libs/asura-lib-core/graphics/render_target.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/render_target.h b/source/libs/asura-lib-core/graphics/render_target.h deleted file mode 100644 index afa5c6a..0000000 --- a/source/libs/asura-lib-core/graphics/render_target.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef __ASURA_ENGINE_RENDERTARGET_H__ -#define __ASURA_ENGINE_RENDERTARGET_H__ - -#include -#include -#include - -#include "texture.h" -#include "color.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - class Drawable; - - /// - /// 可被作为渲染目标的类,派生类有 - /// Canvas(RenderTexture) - /// Window(RenderWindow) - /// - class RenderTarget - { - public: - - RenderTarget() {}; - - virtual ~RenderTarget() {}; - - /// - /// 用颜色col清空整个RT - /// - virtual void Clear(const Color& col = Color::Black) = 0; - - /// - /// 用颜色col清空部分RT - /// - virtual void Clear(const Math::Recti& quad, const Color& col = Color::Black) = 0; - - /// - /// 绘制texture到本RT上 - /// - virtual void Draw(const Drawable* texture, const RenderState& state) = 0; - - /// - /// 绘制一部分texture到本RT上 - /// - virtual void Draw(const Drawable* texture, const Math::Recti& quad, const RenderState& state) = 0; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/shader.cpp b/source/libs/asura-lib-core/graphics/shader.cpp deleted file mode 100644 index 1a85866..0000000 --- a/source/libs/asura-lib-core/graphics/shader.cpp +++ /dev/null @@ -1,81 +0,0 @@ -#include "Shader.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - Shader::Shader() - { - - } - - Shader::~Shader() - { - - } - - bool Shader::Load(const std::string& vertexShader, const std::string& fragmentShader) - { - - } - - uint Shader::GetUniformLocation(const std::string& uniform) - { - - } - - GLuint Shader::GetGLProgramHandle() - { - return mProgramHandle; - } - - void Shader::Use() - { - - } - - void Shader::Unuse() - { - - } - - void Shader::SetUniformFloat(uint loc, float value) - { - - } - - void Shader::SetUniformFloat(uint loc, float value) - { - - } - - void Shader::SetUniformTexture(uint loc, const Texture& texture) - { - - } - - void Shader::SetUniformVector2(uint loc, const Math::Vector2f& vec2) - { - - } - - void Shader::SetUniformVector3(uint loc, const Math::Vector3f& vec3) - { - - } - - void Shader::SetUniformVector4(uint loc, const Math::Vector4f& vec4) - { - - } - - uint Shader::GetGLTextureUnitCount() - { - GLint maxTextureUnits = 0; - glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &maxTextureUnits); - return (uint)maxTextureUnits; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/shader.h b/source/libs/asura-lib-core/graphics/shader.h deleted file mode 100644 index 1c81355..0000000 --- a/source/libs/asura-lib-core/graphics/shader.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef __ASURA_ENGINE_SHADER_H__ -#define __ASURA_ENGINE_SHADER_H__ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "color.h" -#include "texture.h" -#include "gl.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - /// - /// 一个shader是一个在材质间共享的程序。Shader本身不保存uniforms和顶点数据,只提供设置uniforms和use着色器的方法。编辑 - /// 器针对每个shader,会通过shader代码找到声明的uniforms变量,并暴露给framework的material设置。 - /// - class Shader ASURA_FINAL - : public Scripting::Portable - , public AEIO::Reloadable - { - public: - - Shader(); - - ~Shader(); - - /// - /// 从代码编译shader,编译时会先检测是否有上次缓存的uniforms location map。使用glAttachShader重新编译生成着色器, - /// 不会重新申请着色器程序。 - /// - bool Load(const std::string& vertexShader, const std::string& fragmentShader); - - /// - /// 将当期shader设置为活动 - /// - void Use(); - - /// - /// 将当期shader设置为非活动 - /// - void Unuse(); - - /// - /// 在已经知道uniform location的情况下,设置值。 - /// - void SetUniformFloat(uint loc, float value); - void SetUniformTexture(uint loc, const Texture& texture); - void SetUniformVector2(uint loc, const Math::Vector2f& vec2); - void SetUniformVector3(uint loc, const Math::Vector3f& vec3); - void SetUniformVector4(uint loc, const Math::Vector4f& vec4); - void SetUniformColor(uint loc, const Color& color); - void SetUniformMatrix44(uint loc, const Math::Matrix44& mat44); - - uint GetUniformLocation(const std::string& uniform); - - bool HasUniform(const std::string& uniform); - - GLuint GetGLProgramHandle(); - - /// - /// 获得texture unit数量,一般为16个 - /// - static uint GetGLTextureUnitCount(); - - private: - - /// - /// 当前活动的shader - /// - static Shader* mCurrentShader; - - /// - /// 设置内置变量: - /// vec2 Asura_Time x值为进入当前场景开始的时间,y值为上一帧的时间间隔 - /// vec2 Asura_RenderTargetSize RT的大小,以像素为单位 - /// Texture Asura_MainTexture 主纹理 - /// - void SetBuiltInUniforms(); - - /// - /// OpenGL shader program handle. - /// - GLuint mProgramHandle; - - //------------------------------------------------------------------------------// - - public: - - LUAX_DECL_FACTORY(SimShader); - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_Use); - LUAX_DECL_METHOD(_Unuse); - LUAX_DECL_METHOD(_Load); - LUAX_DECL_METHOD(_HasUniform); - LUAX_DECL_METHOD(_GetUniformLocation); - LUAX_DECL_METHOD(_SetBuiltInUniforms); - LUAX_DECL_METHOD(_SetUniformFloat); - LUAX_DECL_METHOD(_SetUniformTexture); - LUAX_DECL_METHOD(_SetUniformVector2); - LUAX_DECL_METHOD(_SetUniformVector3); - LUAX_DECL_METHOD(_SetUniformVector4); - LUAX_DECL_METHOD(_SetUniformColor); - - private: - - Luax::LuaxMemberRef mCodeLuaRef; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/shape.cpp b/source/libs/asura-lib-core/graphics/shape.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/shape.h b/source/libs/asura-lib-core/graphics/shape.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/sprite_batch.cpp b/source/libs/asura-lib-core/graphics/sprite_batch.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/graphics/sprite_batch.h b/source/libs/asura-lib-core/graphics/sprite_batch.h deleted file mode 100644 index d8d9ca6..0000000 --- a/source/libs/asura-lib-core/graphics/sprite_batch.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __ASURA_ENGINE_SPRITE_BATCH_H__ -#define __ASURA_ENGINE_SPRITE_BATCH_H__ - -#include - -namespace AsuraEngine -{ - namespace Graphics - { - - /// - /// Sprite batch用在批量渲染单个图片的地方,比如粒子系统。 - /// - class SpriteBatch ASURA_FINAL - : public Scripting::Portable - { - public: - - SpriteBatch(); - - ~SpriteBatch(); - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/stb_decoder.cpp b/source/libs/asura-lib-core/graphics/stb_decoder.cpp deleted file mode 100644 index a13d6b8..0000000 --- a/source/libs/asura-lib-core/graphics/stb_decoder.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include - -#include "stb_decoder.h" -#include "stb/stb_image.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - bool STBDecoder::CanDecode(const Filesystem::DataBuffer& buffer) - { - int w = 0; - int h = 0; - int comp = 0; - - int status = stbi_info_from_memory((const stbi_uc*)buffer.data, buffer.size, &w, &h, &comp); - - return status == 1 && w > 0 && h > 0; - } - - void STBDecoder::Decode(const Filesystem::DataBuffer& db, ImageData& imageData) - { - const stbi_uc *buffer = (const stbi_uc *)db.data; - int bufferlen = db.size; - int width, height; - int comp = 0; - byte* data = nullptr; - PixelFormat format = PIXELFORMAT_UNKNOWN; - std::size_t size = 0; - - if (stbi_is_hdr_from_memory(buffer, bufferlen)) - { - // 4个channel都是float - data = (byte*)stbi_loadf_from_memory(buffer, bufferlen, &width, &height, &comp, STBI_rgb_alpha); - format = PIXELFORMAT_RGBA32F; - size = width * height * 4 * sizeof(float); - } - else - { - data = (byte*)stbi_load_from_memory(buffer, bufferlen, &width, &height, &comp, STBI_rgb_alpha); - format = PIXELFORMAT_ASTC_8x5; - size = width * height * 4; - } - if (data) - { - // 保证内存被释放,做一个防护,理论上不会出现没有释放的情况,因为image data是一次性的,image才是多次的。 - if (imageData.pixels) - delete[] imageData.pixels; - imageData.pixels = (byte*)data; - imageData.format = format; - imageData.width = width; - imageData.height = height; - } - else - { - const char *err = stbi_failure_reason(); - if (err == nullptr) - err = "unknown error"; - throw Exception("Could not decode image with stb_image (%s).", err); - } - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/stb_decoder.h b/source/libs/asura-lib-core/graphics/stb_decoder.h deleted file mode 100644 index 85bad21..0000000 --- a/source/libs/asura-lib-core/graphics/stb_decoder.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __ASURA_ENGINE_STBDECODER_H__ -#define __ASURA_ENGINE_STBDECODER_H__ - -#include "image_decoder.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - /// - /// 使用stb_image解压JPEG、TGA、BMP文件 - /// - class STBDecoder ASURA_FINAL - : public ImageDecoder - { - public: - - bool CanDecode(const AEIO::DataBuffer& buffer) override; - - void Decode(const AEIO::DataBuffer& buffer, ImageData& data) override; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/texture.cpp b/source/libs/asura-lib-core/graphics/texture.cpp deleted file mode 100644 index 6cb6497..0000000 --- a/source/libs/asura-lib-core/graphics/texture.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "Texture.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - Texture::Texture() - : mTextureHandle(0) - { - // 申请GL texture - glGenTextures(1, &mTextureHandle); - } - - Texture::~Texture() - { - glDeleteTextures(1, &mTextureHandle); - } - - GLuint Texture::GetGLTextureHandle() const - { - return mTextureHandle; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-core/graphics/texture.h b/source/libs/asura-lib-core/graphics/texture.h deleted file mode 100644 index c412b2e..0000000 --- a/source/libs/asura-lib-core/graphics/texture.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef __ASURA_ENGINE_TEXTURE_H__ -#define __ASURA_ENGINE_TEXTURE_H__ - -#include -#include -#include - -#include "../core_config.h" - -#include "render_state.h" -#include "gl.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - class RenderTarget; - - /// - /// 2D纹理抽象类,在2d mesh和render target中被使用。Texture的渲染原点在左上角,游戏里面的上层会以笛卡尔坐标系为标准。 - /// 在Editor里面界面和组件也是以左上角为原点,这样是为了方便。 - /// - ASURA_ABSTRACT class Texture - { - public: - - Texture(); - - virtual ~Texture(); - - GLuint GetGLTextureHandle() const; - - /// - /// 渲染整个texture到rt上,原点在左上角,向右,向下延伸 - /// - virtual void Render(const RenderTarget* rt, const RenderState& state) = 0; - - /// - /// 渲染texture的一部分到rt上,原点在左上角,向右,向下延伸。 - /// - virtual void Render(const RenderTarget* rt, const Math::Rectf& quad, const RenderState& state) = 0; - - /// - /// 设置过滤方式 - /// - void SetSmooth(bool smooth); - - /// - /// 设置重复方式 - /// - void SetRepeated(); - - protected: - - /// - /// OpenGL texture handle。 - /// - GLuint mTextureHandle; - - }; - - using Drawable = Texture; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/input/clipboard.cpp b/source/libs/asura-lib-core/input/clipboard.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/input/clipboard.h b/source/libs/asura-lib-core/input/clipboard.h deleted file mode 100644 index 4cecd55..0000000 --- a/source/libs/asura-lib-core/input/clipboard.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef __ASURA_ENGINE_CLIPBOARD_H__ -#define __ASURA_ENGINE_CLIPBOARD_H__ - -#include "Text/String.hpp" -#include "InputDevice.hpp" - -namespace AsuraEngine -{ - namespace Input - { - - class Clipboard ASURA_FINAL : public InputDevice - { - public: - - Clipboard(); - - Text::String GetString(); - - void SetString(const Text::String& text); - - //---------------------------------------------------------------------------------------------------------- - - LUAX_DECL_SINGLETON(Clipboard); - - //---------------------------------------------------------------------------------------------------------- - - private: - - ~Clipboard(); - - }; - - }; -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/input/cursor.cpp b/source/libs/asura-lib-core/input/cursor.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/input/cursor.defs b/source/libs/asura-lib-core/input/cursor.defs deleted file mode 100644 index f8b8492..0000000 --- a/source/libs/asura-lib-core/input/cursor.defs +++ /dev/null @@ -1,25 +0,0 @@ - -// Types of system cursors. -enum SystemCursor -{ - CURSOR_ARROW, - CURSOR_IBEAM, - CURSOR_WAIT, - CURSOR_CROSSHAIR, - CURSOR_WAITARROW, - CURSOR_SIZENWSE, - CURSOR_SIZENESW, - CURSOR_SIZEWE, - CURSOR_SIZENS, - CURSOR_SIZEALL, - CURSOR_NO, - CURSOR_HAND, - CURSOR_MAX_ENUM -}; - -enum CursorType -{ - CURSORTYPE_SYSTEM, - CURSORTYPE_IMAGE, - CURSORTYPE_MAX_ENUM -}; diff --git a/source/libs/asura-lib-core/input/cursor.h b/source/libs/asura-lib-core/input/cursor.h deleted file mode 100644 index 553fda4..0000000 --- a/source/libs/asura-lib-core/input/cursor.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef __ASURA_ENGINE_CURSOR_H__ -#define __ASURA_ENGINE_CURSOR_H__ - -#include - -#include - -#include "../graphics/image_data.h" - -#include "input_device.hpp" - -namespace AsuraEngine -{ - namespace Input - { - - class CursorImpl; - - // 鼠标指针的相关枚举 -#include "Cursor.defs" - - class Cursor - : public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(Cursor); - - Cursor(Graphics::ImageData& imageData, int hotx, int hoty); - Cursor(SystemCursor cursortype); - - ~Cursor(); - - SDL_Cursor* GetHandle() const; - CursorType GetType() const; - SystemCursor GetSystemType() const; - - private: - - CursorType mType; - SystemCursor mSystemType; - CursorImpl* mImpl; - - }; - - ASURA_ABSTRACT class CursorImpl - { - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/input/cursor_impl_sdl.cpp b/source/libs/asura-lib-core/input/cursor_impl_sdl.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/input/cursor_impl_sdl.h b/source/libs/asura-lib-core/input/cursor_impl_sdl.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/input/event.h b/source/libs/asura-lib-core/input/event.h deleted file mode 100644 index a24e806..0000000 --- a/source/libs/asura-lib-core/input/event.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef __ASURA_ENGINE_EVENT_H__ -#define __ASURA_ENGINE_EVENT_H__ - -namespace AsuraEngine -{ - namespace Input - { - - enum EventType - { - EVENT_BEGIN_MOUSE__ , - EVENT_LEFT_DOWN , - EVENT_LEFT_UP , - EVENT_LEFT_DCLICK , - EVENT_MIDDLE_DOWN , - EVENT_MIDDLE_UP , - EVENT_MIDDLE_DCLICK , - EVENT_RIGHT_DOWN , - EVENT_RIGHT_UP , - EVENT_RIGHT_DCLICK , - EVENT_MOTION , - EVENT_END_MOUSE__ , - EVENT_ENTER_WINDOW , - EVENT_LEAVE_WINDOW , - EVENT_MOUSEWHEEL - }; - - struct Event - { - int type; - union - { - // 鼠标按键事件 - struct { - int id; - } button; - }; - }; - - } -} - -namespace AEInput = AsuraEngine::Input; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/input/input_device.hpp b/source/libs/asura-lib-core/input/input_device.hpp deleted file mode 100644 index 46f5be8..0000000 --- a/source/libs/asura-lib-core/input/input_device.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __ASURA_ENGINE_INPUT_BASE_H__ -#define __ASURA_ENGINE_INPUT_BASE_H__ - -#include - -#include "../core_config.h" -#include "../singleton.hpp" - -namespace AsuraEngine -{ - namespace Input - { - - /// - /// 输入设备是一个单例 - /// - template - ASURA_ABSTRACT class InputDevice - : virtual public Scripting::Portable - , virtual public Singleton - { - public: - InputDevice(); - virtual ~InputDevice(); - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/input/joypad.h b/source/libs/asura-lib-core/input/joypad.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/input/keyboard.cpp b/source/libs/asura-lib-core/input/keyboard.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/input/keyboard.defs b/source/libs/asura-lib-core/input/keyboard.defs deleted file mode 100644 index 8f04dc2..0000000 --- a/source/libs/asura-lib-core/input/keyboard.defs +++ /dev/null @@ -1,482 +0,0 @@ - -/** -* Keyboard keys. They are dependent on the current layout of the keyboard. -**/ -enum Key -{ - KEY_UNKNOWN, - - KEY_RETURN, - KEY_ESCAPE, - KEY_BACKSPACE, - KEY_TAB, - KEY_SPACE, - KEY_EXCLAIM, - KEY_QUOTEDBL, - KEY_HASH, - KEY_PERCENT, - KEY_DOLLAR, - KEY_AMPERSAND, - KEY_QUOTE, - KEY_LEFTPAREN, - KEY_RIGHTPAREN, - KEY_ASTERISK, - KEY_PLUS, - KEY_COMMA, - KEY_MINUS, - KEY_PERIOD, - KEY_SLASH, - KEY_0, - KEY_1, - KEY_2, - KEY_3, - KEY_4, - KEY_5, - KEY_6, - KEY_7, - KEY_8, - KEY_9, - KEY_COLON, - KEY_SEMICOLON, - KEY_LESS, - KEY_EQUALS, - KEY_GREATER, - KEY_QUESTION, - KEY_AT, - - KEY_LEFTBRACKET, - KEY_BACKSLASH, - KEY_RIGHTBRACKET, - KEY_CARET, - KEY_UNDERSCORE, - KEY_BACKQUOTE, - KEY_A, - KEY_B, - KEY_C, - KEY_D, - KEY_E, - KEY_F, - KEY_G, - KEY_H, - KEY_I, - KEY_J, - KEY_K, - KEY_L, - KEY_M, - KEY_N, - KEY_O, - KEY_P, - KEY_Q, - KEY_R, - KEY_S, - KEY_T, - KEY_U, - KEY_V, - KEY_W, - KEY_X, - KEY_Y, - KEY_Z, - - KEY_CAPSLOCK, - - KEY_F1, - KEY_F2, - KEY_F3, - KEY_F4, - KEY_F5, - KEY_F6, - KEY_F7, - KEY_F8, - KEY_F9, - KEY_F10, - KEY_F11, - KEY_F12, - - KEY_PRINTSCREEN, - KEY_SCROLLLOCK, - KEY_PAUSE, - KEY_INSERT, - KEY_HOME, - KEY_PAGEUP, - KEY_DELETE, - KEY_END, - KEY_PAGEDOWN, - KEY_RIGHT, - KEY_LEFT, - KEY_DOWN, - KEY_UP, - - KEY_NUMLOCKCLEAR, - KEY_KP_DIVIDE, - KEY_KP_MULTIPLY, - KEY_KP_MINUS, - KEY_KP_PLUS, - KEY_KP_ENTER, - KEY_KP_1, - KEY_KP_2, - KEY_KP_3, - KEY_KP_4, - KEY_KP_5, - KEY_KP_6, - KEY_KP_7, - KEY_KP_8, - KEY_KP_9, - KEY_KP_0, - KEY_KP_PERIOD, - KEY_KP_COMMA, - KEY_KP_EQUALS, - - KEY_APPLICATION, - KEY_POWER, - KEY_F13, - KEY_F14, - KEY_F15, - KEY_F16, - KEY_F17, - KEY_F18, - KEY_F19, - KEY_F20, - KEY_F21, - KEY_F22, - KEY_F23, - KEY_F24, - KEY_EXECUTE, - KEY_HELP, - KEY_MENU, - KEY_SELECT, - KEY_STOP, - KEY_AGAIN, - KEY_UNDO, - KEY_CUT, - KEY_COPY, - KEY_PASTE, - KEY_FIND, - KEY_MUTE, - KEY_VOLUMEUP, - KEY_VOLUMEDOWN, - - KEY_ALTERASE, - KEY_SYSREQ, - KEY_CANCEL, - KEY_CLEAR, - KEY_PRIOR, - KEY_RETURN2, - KEY_SEPARATOR, - KEY_OUT, - KEY_OPER, - KEY_CLEARAGAIN, - - KEY_THOUSANDSSEPARATOR, - KEY_DECIMALSEPARATOR, - KEY_CURRENCYUNIT, - KEY_CURRENCYSUBUNIT, - - KEY_LCTRL, - KEY_LSHIFT, - KEY_LALT, - KEY_LGUI, - KEY_RCTRL, - KEY_RSHIFT, - KEY_RALT, - KEY_RGUI, - - KEY_MODE, - - KEY_AUDIONEXT, - KEY_AUDIOPREV, - KEY_AUDIOSTOP, - KEY_AUDIOPLAY, - KEY_AUDIOMUTE, - KEY_MEDIASELECT, - KEY_WWW, - KEY_MAIL, - KEY_CALCULATOR, - KEY_COMPUTER, - KEY_APP_SEARCH, - KEY_APP_HOME, - KEY_APP_BACK, - KEY_APP_FORWARD, - KEY_APP_STOP, - KEY_APP_REFRESH, - KEY_APP_BOOKMARKS, - - KEY_BRIGHTNESSDOWN, - KEY_BRIGHTNESSUP, - KEY_DISPLAYSWITCH, - KEY_KBDILLUMTOGGLE, - KEY_KBDILLUMDOWN, - KEY_KBDILLUMUP, - KEY_EJECT, - KEY_SLEEP, - - KEY_MAX_ENUM -}; - -/** -* Scancodes represent physical keys independent of the current layout. -* Their names may not match the names of the keys printed on the keyboard. -* Some of them are very esoteric... -**/ -enum Scancode -{ - SCANCODE_UNKNOWN, - - SCANCODE_A, - SCANCODE_B, - SCANCODE_C, - SCANCODE_D, - SCANCODE_E, - SCANCODE_F, - SCANCODE_G, - SCANCODE_H, - SCANCODE_I, - SCANCODE_J, - SCANCODE_K, - SCANCODE_L, - SCANCODE_M, - SCANCODE_N, - SCANCODE_O, - SCANCODE_P, - SCANCODE_Q, - SCANCODE_R, - SCANCODE_S, - SCANCODE_T, - SCANCODE_U, - SCANCODE_V, - SCANCODE_W, - SCANCODE_X, - SCANCODE_Y, - SCANCODE_Z, - - SCANCODE_1, - SCANCODE_2, - SCANCODE_3, - SCANCODE_4, - SCANCODE_5, - SCANCODE_6, - SCANCODE_7, - SCANCODE_8, - SCANCODE_9, - SCANCODE_0, - - SCANCODE_RETURN, - SCANCODE_ESCAPE, - SCANCODE_BACKSPACE, - SCANCODE_TAB, - SCANCODE_SPACE, - - SCANCODE_MINUS, - SCANCODE_EQUALS, - SCANCODE_LEFTBRACKET, - SCANCODE_RIGHTBRACKET, - SCANCODE_BACKSLASH, - SCANCODE_NONUSHASH, - SCANCODE_SEMICOLON, - SCANCODE_APOSTROPHE, - SCANCODE_GRAVE, - SCANCODE_COMMA, - SCANCODE_PERIOD, - SCANCODE_SLASH, - - SCANCODE_CAPSLOCK, - - SCANCODE_F1, - SCANCODE_F2, - SCANCODE_F3, - SCANCODE_F4, - SCANCODE_F5, - SCANCODE_F6, - SCANCODE_F7, - SCANCODE_F8, - SCANCODE_F9, - SCANCODE_F10, - SCANCODE_F11, - SCANCODE_F12, - - SCANCODE_PRINTSCREEN, - SCANCODE_SCROLLLOCK, - SCANCODE_PAUSE, - SCANCODE_INSERT, - SCANCODE_HOME, - SCANCODE_PAGEUP, - SCANCODE_DELETE, - SCANCODE_END, - SCANCODE_PAGEDOWN, - SCANCODE_RIGHT, - SCANCODE_LEFT, - SCANCODE_DOWN, - SCANCODE_UP, - - SCANCODE_NUMLOCKCLEAR, - SCANCODE_KP_DIVIDE, - SCANCODE_KP_MULTIPLY, - SCANCODE_KP_MINUS, - SCANCODE_KP_PLUS, - SCANCODE_KP_ENTER, - SCANCODE_KP_1, - SCANCODE_KP_2, - SCANCODE_KP_3, - SCANCODE_KP_4, - SCANCODE_KP_5, - SCANCODE_KP_6, - SCANCODE_KP_7, - SCANCODE_KP_8, - SCANCODE_KP_9, - SCANCODE_KP_0, - SCANCODE_KP_PERIOD, - - SCANCODE_NONUSBACKSLASH, - SCANCODE_APPLICATION, - SCANCODE_POWER, - SCANCODE_KP_EQUALS, - SCANCODE_F13, - SCANCODE_F14, - SCANCODE_F15, - SCANCODE_F16, - SCANCODE_F17, - SCANCODE_F18, - SCANCODE_F19, - SCANCODE_F20, - SCANCODE_F21, - SCANCODE_F22, - SCANCODE_F23, - SCANCODE_F24, - SCANCODE_EXECUTE, - SCANCODE_HELP, - SCANCODE_MENU, - SCANCODE_SELECT, - SCANCODE_STOP, - SCANCODE_AGAIN, - SCANCODE_UNDO, - SCANCODE_CUT, - SCANCODE_COPY, - SCANCODE_PASTE, - SCANCODE_FIND, - SCANCODE_MUTE, - SCANCODE_VOLUMEUP, - SCANCODE_VOLUMEDOWN, - SCANCODE_KP_COMMA, - SCANCODE_KP_EQUALSAS400, - - SCANCODE_INTERNATIONAL1, - SCANCODE_INTERNATIONAL2, - SCANCODE_INTERNATIONAL3, - SCANCODE_INTERNATIONAL4, - SCANCODE_INTERNATIONAL5, - SCANCODE_INTERNATIONAL6, - SCANCODE_INTERNATIONAL7, - SCANCODE_INTERNATIONAL8, - SCANCODE_INTERNATIONAL9, - SCANCODE_LANG1, - SCANCODE_LANG2, - SCANCODE_LANG3, - SCANCODE_LANG4, - SCANCODE_LANG5, - SCANCODE_LANG6, - SCANCODE_LANG7, - SCANCODE_LANG8, - SCANCODE_LANG9, - - SCANCODE_ALTERASE, - SCANCODE_SYSREQ, - SCANCODE_CANCEL, - SCANCODE_CLEAR, - SCANCODE_PRIOR, - SCANCODE_RETURN2, - SCANCODE_SEPARATOR, - SCANCODE_OUT, - SCANCODE_OPER, - SCANCODE_CLEARAGAIN, - SCANCODE_CRSEL, - SCANCODE_EXSEL, - - SCANCODE_KP_00, - SCANCODE_KP_000, - SCANCODE_THOUSANDSSEPARATOR, - SCANCODE_DECIMALSEPARATOR, - SCANCODE_CURRENCYUNIT, - SCANCODE_CURRENCYSUBUNIT, - SCANCODE_KP_LEFTPAREN, - SCANCODE_KP_RIGHTPAREN, - SCANCODE_KP_LEFTBRACE, - SCANCODE_KP_RIGHTBRACE, - SCANCODE_KP_TAB, - SCANCODE_KP_BACKSPACE, - SCANCODE_KP_A, - SCANCODE_KP_B, - SCANCODE_KP_C, - SCANCODE_KP_D, - SCANCODE_KP_E, - SCANCODE_KP_F, - SCANCODE_KP_XOR, - SCANCODE_KP_POWER, - SCANCODE_KP_PERCENT, - SCANCODE_KP_LESS, - SCANCODE_KP_GREATER, - SCANCODE_KP_AMPERSAND, - SCANCODE_KP_DBLAMPERSAND, - SCANCODE_KP_VERTICALBAR, - SCANCODE_KP_DBLVERTICALBAR, - SCANCODE_KP_COLON, - SCANCODE_KP_HASH, - SCANCODE_KP_SPACE, - SCANCODE_KP_AT, - SCANCODE_KP_EXCLAM, - SCANCODE_KP_MEMSTORE, - SCANCODE_KP_MEMRECALL, - SCANCODE_KP_MEMCLEAR, - SCANCODE_KP_MEMADD, - SCANCODE_KP_MEMSUBTRACT, - SCANCODE_KP_MEMMULTIPLY, - SCANCODE_KP_MEMDIVIDE, - SCANCODE_KP_PLUSMINUS, - SCANCODE_KP_CLEAR, - SCANCODE_KP_CLEARENTRY, - SCANCODE_KP_BINARY, - SCANCODE_KP_OCTAL, - SCANCODE_KP_DECIMAL, - SCANCODE_KP_HEXADECIMAL, - - SCANCODE_LCTRL, - SCANCODE_LSHIFT, - SCANCODE_LALT, - SCANCODE_LGUI, - SCANCODE_RCTRL, - SCANCODE_RSHIFT, - SCANCODE_RALT, - SCANCODE_RGUI, - - SCANCODE_MODE, - - SCANCODE_AUDIONEXT, - SCANCODE_AUDIOPREV, - SCANCODE_AUDIOSTOP, - SCANCODE_AUDIOPLAY, - SCANCODE_AUDIOMUTE, - SCANCODE_MEDIASELECT, - SCANCODE_WWW, - SCANCODE_MAIL, - SCANCODE_CALCULATOR, - SCANCODE_COMPUTER, - SCANCODE_AC_SEARCH, - SCANCODE_AC_HOME, - SCANCODE_AC_BACK, - SCANCODE_AC_FORWARD, - SCANCODE_AC_STOP, - SCANCODE_AC_REFRESH, - SCANCODE_AC_BOOKMARKS, - - SCANCODE_BRIGHTNESSDOWN, - SCANCODE_BRIGHTNESSUP, - SCANCODE_DISPLAYSWITCH, - SCANCODE_KBDILLUMTOGGLE, - SCANCODE_KBDILLUMDOWN, - SCANCODE_KBDILLUMUP, - SCANCODE_EJECT, - SCANCODE_SLEEP, - - SCANCODE_APP1, - SCANCODE_APP2, - - SCANCODE_MAX_ENUM -}; diff --git a/source/libs/asura-lib-core/input/keyboard.h b/source/libs/asura-lib-core/input/keyboard.h deleted file mode 100644 index 1480d06..0000000 --- a/source/libs/asura-lib-core/input/keyboard.h +++ /dev/null @@ -1,73 +0,0 @@ -//#ifndef __ASURA_INPUT_KEYBOARD_H__ -//#define __ASURA_INPUT_KEYBOARD_H__ -// -//#include -// -//#include "InputDevice.hpp" -//#include "Scripting/Portable.h" -// -//namespace AsuraEngine -//{ -// namespace Input -// { -// -// class Keyboard ASURA_FINAL : public InputDevice -// { -// public: -// -// // 键盘相关的枚举 -// #include "Keyboard.defs" -// -// Keyboard(); -// -// void SetKeyRepeat(bool enable); -// bool HasKeyRepeat() const; -// bool IsDown(const std::vector &keylist) const; -// bool IsScancodeDown(const std::vector &scancodelist) const; -// -// Key GetKeyFromScancode(Scancode scancode) const; -// Scancode GetScancodeFromKey(Key key) const; -// -// void SetTextInput(bool enable); -// void SetTextInput(bool enable, double x, double y, double w, double h); -// bool HasTextInput() const; -// bool HasScreenKeyboard() const; -// -// bool GetConstant(Scancode in, SDL_Scancode &out); -// bool GetConstant(SDL_Scancode in, Scancode &out); -// -// private: -// -// ~Keyboard(); -// -// public: -// -// //---------------------------------------------------------------------------------------------------------- -// -// LUAX_DECL_SINGLETON(Keyboard); // 通过AsuraEngine.Keyboard直接访问,没有New方法 -// -// LUAX_DECL_ENUM(Key); -// LUAX_DECL_ENUM(ScanCode); -// -// LUAX_DECL_METHOD(SetKeyRepeat); -// LUAX_DECL_METHOD(HasKeyRepeat); -// LUAX_DECL_METHOD(IsDown); -// LUAX_DECL_METHOD(IsScancodeDown); -// -// LUAX_DECL_METHOD(GetKeyFromScancode); -// LUAX_DECL_METHOD(GetScancodeFromKey); -// -// LUAX_DECL_METHOD(SetTextInput); -// LUAX_DECL_METHOD(HasTextInput); -// LUAX_DECL_METHOD(HasScreenKeyboard); -// -// LUAX_DECL_METHOD(GetConstant); -// -// //---------------------------------------------------------------------------------------------------------- -// -// }; -// -// } -//} -// -//#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/input/mouse.cpp b/source/libs/asura-lib-core/input/mouse.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/input/mouse.defs b/source/libs/asura-lib-core/input/mouse.defs deleted file mode 100644 index de1d117..0000000 --- a/source/libs/asura-lib-core/input/mouse.defs +++ /dev/null @@ -1,7 +0,0 @@ - -enum MouseButton -{ - MOUSE_BUTTON_LEFT, - MOUSE_BUTTON_MIDDLE, - MOUSE_BUTTON_RIGHT, -}; diff --git a/source/libs/asura-lib-core/input/mouse.h b/source/libs/asura-lib-core/input/mouse.h deleted file mode 100644 index 3ab67fa..0000000 --- a/source/libs/asura-lib-core/input/mouse.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef __ASURA_ENGINE_MOUSE_H__ -#define __ASURA_ENGINE_MOUSE_H__ - -#include "cursor.h" -#include "input_device.hpp" - -namespace AsuraEngine -{ - namespace Input - { - - class Mouse : public InputDevice - { - public: - - /// - /// 从图片数据中构建鼠标指针或者使用系统指针 - /// - Cursor *CreateCursor(Graphics::ImageData *data, int hotx, int hoty); - Cursor *GetSystemCursor(Cursor::SystemCursor cursortype); - - void SetCursor(Cursor *cursor); - void SetCursor() ; - - Cursor* GetCursor() const; - - bool IsCursorSupported() const; - - double GetX() const; - double GetY() const; - void GetPosition(double &x, double &y) const; - void GetX(double x) ; - void SetY(double y) ; - void SetPosition(double x, double y) ; - void SetVisible(bool visible) ; - bool IsDown(const std::vector &buttons) const; - bool IsVisible() const; - void SetGrabbed(bool grab) ; - bool IsGrabbed() const; - bool SetRelativeMode(bool relative) ; - bool GetRelativeMode() const; - - //---------------------------------------------------------------------------------------------------------- - - LUAX_DECL_SINGLETON(Mouse); - - //---------------------------------------------------------------------------------------------------------- - - private: - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/profiler/stats.cpp b/source/libs/asura-lib-core/profiler/stats.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/profiler/stats.h b/source/libs/asura-lib-core/profiler/stats.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/coroutine.cpp b/source/libs/asura-lib-core/threading/coroutine.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/coroutine.h b/source/libs/asura-lib-core/threading/coroutine.h deleted file mode 100644 index 1ac6b21..0000000 --- a/source/libs/asura-lib-core/threading/coroutine.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __ASURA_COROUTINE_H__ -#define __ASURA_COROUTINE_H__ - -#include - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// lua协程,用来做一些逻辑并发操作。 - /// - class Coroutine ASURA_FINAL - : public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(Coroutine); - - private: - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_Run); - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/threading/thread.cpp b/source/libs/asura-lib-core/threading/thread.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/thread.h b/source/libs/asura-lib-core/threading/thread.h deleted file mode 100644 index f4d3b48..0000000 --- a/source/libs/asura-lib-core/threading/thread.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef __ASURA_THREAD_H__ -#define __ASURA_THREAD_H__ - -#include -#include - -#include "thread_task.h" - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// 线程的具体实现,对用户是透明的,一共准备了四种策略: - /// 1: win32 - /// 2: posix - /// 3: SDL - /// 4: std::thread - /// - ASURA_ABSTRACT class ThreadImpl - { - public: - - }; - - /// - /// 线程主体,每个线程维护一个task queue。 - /// - class Thread ASURA_FINAL - : public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(Thread); - - bool Enqueue(ThreadTask* task); - - private: - - /// - /// 任务队列。 - /// - std::queue mTaskQueue; - - ThreadImpl* mImpl; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/threading/thread_impl_posix.cpp b/source/libs/asura-lib-core/threading/thread_impl_posix.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/thread_impl_posix.h b/source/libs/asura-lib-core/threading/thread_impl_posix.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/thread_impl_sdl.cpp b/source/libs/asura-lib-core/threading/thread_impl_sdl.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/thread_impl_sdl.h b/source/libs/asura-lib-core/threading/thread_impl_sdl.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/thread_impl_std.cpp b/source/libs/asura-lib-core/threading/thread_impl_std.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/thread_impl_std.h b/source/libs/asura-lib-core/threading/thread_impl_std.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/thread_impl_win32.cpp b/source/libs/asura-lib-core/threading/thread_impl_win32.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/thread_impl_win32.h b/source/libs/asura-lib-core/threading/thread_impl_win32.h deleted file mode 100644 index 5d854cc..0000000 --- a/source/libs/asura-lib-core/threading/thread_impl_win32.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __ASURA_THREAD_WIN32_H__ -#define __ASURA_THREAD_WIN32_H__ - -#include "../core_config.h" - -#include "thread.h" - -#if ASURA_THREAD_WIN32 - -namespace AsuraEngine -{ - namespace Threading - { - - class ThreadImplWin32 : public ThreadImpl - { - - }; - - } -} - -#endif // #if ASURA_THREAD_WIN32 - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/threading/thread_task.cpp b/source/libs/asura-lib-core/threading/thread_task.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/threading/thread_task.h b/source/libs/asura-lib-core/threading/thread_task.h deleted file mode 100644 index 19eb113..0000000 --- a/source/libs/asura-lib-core/threading/thread_task.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __ASURA_THRAD_TASK_H__ -#define __ASURA_THRAD_TASK_H__ - -#include - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// 希望放在另一个线程处理的任务,继承Task并重写Execute方法。 - /// - ASURA_ABSTRACT class ThreadTask - { - public: - - virtual bool Execute() = 0; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/time/timer.cpp b/source/libs/asura-lib-core/time/timer.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/time/timer.h b/source/libs/asura-lib-core/time/timer.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/type.h b/source/libs/asura-lib-core/type.h deleted file mode 100644 index 88848d5..0000000 --- a/source/libs/asura-lib-core/type.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __ASURA_ENGINE_TYPE_H__ -#define __ASURA_ENGINE_TYPE_H__ - -#include - -namespace AsuraEngine -{ - -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/window/window.cpp b/source/libs/asura-lib-core/window/window.cpp deleted file mode 100644 index 83a4f53..0000000 --- a/source/libs/asura-lib-core/window/window.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#include "Config.h" -#include "Window.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - Window::Window(WindowStyle style) - { - } - - Window::~Window() - { - - } - - void Window::SetPosition(int x, int y) - { - ASSERT(mWindowHandle); - SDL_SetWindowPosition(mWindowHandle, x, y); - } - - void Window::SetTitle(const std::string& title) - { - - } - - void Window::Show() - { - - } - - void Window::Hide() - { - - } - - void Window::SetWindowStyle(WindowStyle style) - { - - } - - void Window::SwapRenderBuffer() - { - - } - - } -} diff --git a/source/libs/asura-lib-core/window/window.h b/source/libs/asura-lib-core/window/window.h deleted file mode 100644 index 39db73e..0000000 --- a/source/libs/asura-lib-core/window/window.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef __ASURA_ENGINE_WINDOW_H__ -#define __ASURA_ENGINE_WINDOW_H__ - -#include -#include - -#include "../graphics/render_state.h" -#include "../graphics/render_target.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - class WindowImpl; - - enum WindowStyle - { - WINDOW_STYLE_FULLSCREEN = 1 << 1, - }; - - /// - /// 游戏的单窗口,runner只需要一个窗口。不同的客户端实现此接口并手动注册到lua。编辑器不会导入此类,将会嫁接到编辑器的 - /// 虚拟窗口上。 - /// - class Window - : public RenderTarget - , public AEScripting::Portable - { - public: - - LUAX_DECL_SINGLETON(Window); - - Window(WindowStyle style); - - ~Window(); - - void SetSize(uint width, uint height); - - void SetPosition(int x, int y); - - void SetTitle(const std::string& title); - - void SetWindowStyle(WindowStyle style); - - void Show(); - - void Hide(); - - /// - /// 如果是开启双缓冲的窗口,需要交换缓冲区来展示到前台 - /// - void SwapRenderBuffer(); - - void Clear(const Color& col = Color::Black); - - void Clear(const Math::Recti& quad, const Color& col = Color::Black); - - void Draw(const Drawable* texture, const RenderState& state); - - void Draw(const Drawable* texture, const Math::Recti& quad, const RenderState& state); - - protected: - - WindowImpl* mImpl; - - LUAX_DECL_METHOD(_Show); - LUAX_DECL_METHOD(_Hide); - LUAX_DECL_METHOD(_SetResolution); - LUAX_DECL_METHOD(_SetFullScreen); - LUAX_DECL_METHOD(_SetTitle); - LUAX_DECL_METHOD(_SetWindowStyle); - LUAX_DECL_METHOD(_Clear); - LUAX_DECL_METHOD(_Draw); - LUAX_DECL_METHOD(_SwapRenderBuffer); - - }; - - using RenderWindow = Window; - - ASURA_ABSTRACT class WindowImpl - { - public: - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-core/window/window_impl_glew.cpp b/source/libs/asura-lib-core/window/window_impl_glew.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/window/window_impl_glew.h b/source/libs/asura-lib-core/window/window_impl_glew.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/window/window_impl_glut.cpp b/source/libs/asura-lib-core/window/window_impl_glut.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/window/window_impl_glut.h b/source/libs/asura-lib-core/window/window_impl_glut.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/window/window_impl_sdl.cpp b/source/libs/asura-lib-core/window/window_impl_sdl.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-core/window/window_impl_sdl.h b/source/libs/asura-lib-core/window/window_impl_sdl.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-framework/compile.bat b/source/libs/asura-lib-framework/compile.bat deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-framework/compile.sh b/source/libs/asura-lib-framework/compile.sh deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-framework/main.cpp b/source/libs/asura-lib-framework/main.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-framework/scripts/ai/behavior_tree.lua b/source/libs/asura-lib-framework/scripts/ai/behavior_tree.lua deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-framework/scripts/ai/state_graph.lua b/source/libs/asura-lib-framework/scripts/ai/state_graph.lua deleted file mode 100644 index 4f563dc..0000000 --- a/source/libs/asura-lib-framework/scripts/ai/state_graph.lua +++ /dev/null @@ -1,11 +0,0 @@ -local StateGraph = AsuraEngine.Asset.Extend("StateGraph") - -AsuraEngine.StateGraph = StateGraph - -function StateGraph.Ctor(self) - -end - -function StateGraph.ToAsset() - -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/ai/state_machine.lua b/source/libs/asura-lib-framework/scripts/ai/state_machine.lua deleted file mode 100644 index 6dc5e14..0000000 --- a/source/libs/asura-lib-framework/scripts/ai/state_machine.lua +++ /dev/null @@ -1,6 +0,0 @@ -local StateMachine = Class() -AsuraEngine.StateMachine = StateMachine - -function StateMachine.Ctor(self, stategraph) - self.stategraph = stategraph -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/audio/sound.lua b/source/libs/asura-lib-framework/scripts/audio/sound.lua deleted file mode 100644 index d7dea4f..0000000 --- a/source/libs/asura-lib-framework/scripts/audio/sound.lua +++ /dev/null @@ -1,9 +0,0 @@ -AsuraEngine.Sound = AsuraEngine.Asset.Extend("Sound") - -local Sound = AsuraEngine.Sound - -function Sound.Ctor(self) - -end - -return Sound \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/audio/source.lua b/source/libs/asura-lib-framework/scripts/audio/source.lua deleted file mode 100644 index 7dec511..0000000 --- a/source/libs/asura-lib-framework/scripts/audio/source.lua +++ /dev/null @@ -1,22 +0,0 @@ --- Audio Source -AsuraEngine.Source = AsuraEngine.Component.Extend("SoundPlayer") - -local Source = AsuraEngine.Source - -function Source.Ctor(self) - self.mSound = nil -end - -function Source.SetSound(sound) - self.mSound = sound -end - -function Source.GetSource() - return self.mSound -end - -function Source.OnUpdate(dt) - -end - -return Source \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/class.lua b/source/libs/asura-lib-framework/scripts/class.lua deleted file mode 100644 index 6392483..0000000 --- a/source/libs/asura-lib-framework/scripts/class.lua +++ /dev/null @@ -1,17 +0,0 @@ -AsuraEngine.Class = {} - -local Class = AsuraEngine.Class -Class.__index = Class - -function Class.Extend(base, classname) - local subclass = {} - base.__index = base - setmetatable(subclass, base) - return c -end - -function Class.New(cls) - local obj = {} - setmetatable(obj, cls) - cls.__index = cls -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/component.lua b/source/libs/asura-lib-framework/scripts/component.lua deleted file mode 100644 index b560bd3..0000000 --- a/source/libs/asura-lib-framework/scripts/component.lua +++ /dev/null @@ -1,30 +0,0 @@ -AsuraEngine.Component = AsuraEngine.Class("Component") - -local Component = AsuraEngine.Component - --- Component瑕佹樉绀哄湪inspector鐨勫彉閲 -Component.entity = AsuraEngine.Type.Entity - -function Component.Extend(cname) - self.base(cname) - assert(Component.components[cname] == nil) - -end - -function Component:Ctor(entity) - self.entity = entity -end - -function Component:OnEvent(e) - -end - -function Component:OnUpdate(ms) - -end - -function Component:OnDraw() - -end - -return Component \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/entity.lua b/source/libs/asura-lib-framework/scripts/entity.lua deleted file mode 100644 index ea8e14d..0000000 --- a/source/libs/asura-lib-framework/scripts/entity.lua +++ /dev/null @@ -1,114 +0,0 @@ --- --- 瀹炰綋锛屼綔涓簊cene涓殑瀹炰綋瀛樺湪銆係cene涓敮涓绠$悊鐨勫氨鏄疄浣揺ntity锛屾父鎴忛噷鐨勬墍鏈塩omponent閮戒緷闄勪簬entity瀛樺湪锛屽寘鎷琧amera缁勪欢銆 --- -module "AsuraEngine" -require "transform" - -AsuraEngine.Entity = AsuraEngine.Asset.Extend("Entity") - -local Entity = AsuraEngine.Entity - -function Entity:Ctor() - self.transform = AsuraEngine.Transform.New() - self.subentities = {} -- Extend node entities -end - -function Entity:AddChild(entity) - table.insert(self.child, entity) -end - -function Entity:AddComponent(type, name) - local cname = type - if name == nil then - cname = name - end - local component = AsuraEngine.Component.GetComponent(type) - self.components[cname] = compoennt -end - -function Entity:GetComponent(name) - return self.components[name] -end - -function Entity:GetComponentByType(type) - -end - -function Entity:OnEnable() - -end - -function Entity:OnEvent(e) - if self.components == nil or type(self.components) ~= "table" then - AsuraEditor.LogError("") - return - end - for name, component in self.components do - if component.OnEvent ~= nil then - component:OnEvent(e) - end - end -end - -function Entity:OnUpdate(dt) - for name, component in self.components do - if component.OnUpdate ~= nil then - component:OnUpdate(dt) - end - end -end - -function Entity:OnRender() - for name, component in self.components do - if component.OnRender ~= nil then - component.OnRender() - end - end -end - -function Entity:OnDisable() - for name, component in self.components do - if component.OnDisable ~= nil then - component.OnDisable() - end - end -end - -function Entity:GetTrasform() - return self.transform -end - -function Entity:GetPosition() - -end - -function Entity:GetScale() - -end - -function Entity:GetRotation() - -end - -function Entity:SetTrasform(transform) - -end - -function Entity:SetPosition() - -end - -function Entity:SetScale() - -end - -function Entity:SetRotation() - -end - ---鍐檃sset -function Entity:ToAsset() - -end - -return Entity \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/filesystem/animation_loader.lua b/source/libs/asura-lib-framework/scripts/filesystem/animation_loader.lua deleted file mode 100644 index 9c57c43..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/animation_loader.lua +++ /dev/null @@ -1,10 +0,0 @@ -require "AnimationManager" -require "Animation" - -local loader = AsuraEngine.Loader.New("animation") -local manager = AsuraEngine.AnimationManager -local Animation = AsuraEngine.Animation - -function AnimationLoader.OnLoad(asset) - local animation = AsuraEngine.Class() -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/filesystem/asset.lua b/source/libs/asura-lib-framework/scripts/filesystem/asset.lua deleted file mode 100644 index 7cf3905..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/asset.lua +++ /dev/null @@ -1,20 +0,0 @@ --- --- 娓告垙璧勬簮绫婚渶瑕佺户鎵緼sset绫伙紝寮曟搸璇诲彇.asset鏂囦欢瀵绘壘瀵瑰簲鐨刲oader鍔犺浇杩涙父鎴忕敓鎴愬搴旂殑Asset娲剧敓绫诲璞°傚浜庤剼鏈紝涓嶄細 --- 鐢熸垚瀵瑰簲鐨勫璞★紝鑰屾槸鐩存帴杩愯鑴氭湰灏嗙粨鏋滀繚瀛樸 --- -AsuraEngine.Asset = AsuraEngine.Class("Asset") - -local Asset = AsuraEngine.Asset - -function Asset.Ctor(self) - self.guid = nil -end - ---鑾峰緱璧勬簮缂栧彿 -function Asset.GetGUID(self) - -end - -function Asset.GetAssetByGUID(guid) - -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/filesystem/entity_loader.lua b/source/libs/asura-lib-framework/scripts/filesystem/entity_loader.lua deleted file mode 100644 index 39ae0d9..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/entity_loader.lua +++ /dev/null @@ -1,5 +0,0 @@ -local loader = AsuraEngine.Loader.New("entity") - -function loader.OnLoad(asset) - -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/filesystem/image_loader.lua b/source/libs/asura-lib-framework/scripts/filesystem/image_loader.lua deleted file mode 100644 index 6b0bef7..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/image_loader.lua +++ /dev/null @@ -1,13 +0,0 @@ -require "graphics.image" -local loader = AsuraEngine.Loader.New("image") - -function loader.OnLoad(asset) - assert(asset ~= nil) - local path = asset.extern - local image = AusraEngine.Image.New(path) - if image == nil then - AsuraEngine.LogError("") - return - end - return image -end diff --git a/source/libs/asura-lib-framework/scripts/filesystem/loader.lua b/source/libs/asura-lib-framework/scripts/filesystem/loader.lua deleted file mode 100644 index e192e30..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/loader.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Assets loaders -AsuraEngine.Loader = {} -local Loader = AsuraEngine.Loader -Loader.Loaders = {} - -function Loader.New(type) - assert(Loader.Loaders[type] == nil) - local loader = {} - Loader[type] = loader - return loader -end - diff --git a/source/libs/asura-lib-framework/scripts/filesystem/material_loader.lua b/source/libs/asura-lib-framework/scripts/filesystem/material_loader.lua deleted file mode 100644 index 07ca4e9..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/material_loader.lua +++ /dev/null @@ -1,7 +0,0 @@ -require "MaterialManager" - -local loader = AsuraEngine.Loader.New("material") - -function loader.OnLoad(asset) - -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/filesystem/path_loader.lua b/source/libs/asura-lib-framework/scripts/filesystem/path_loader.lua deleted file mode 100644 index 986e42c..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/path_loader.lua +++ /dev/null @@ -1,9 +0,0 @@ -require "Path/PathManager" - -local loader = AsuraEngine.Loader.New("path") - -function loader.OnLoad(asset) - if asset.type ~= "path" then - return nil - end -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/filesystem/scene_loader.lua b/source/libs/asura-lib-framework/scripts/filesystem/scene_loader.lua deleted file mode 100644 index 45731f8..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/scene_loader.lua +++ /dev/null @@ -1,7 +0,0 @@ -local Scene = require "scene" - -local loader = AsuraEngine.Loader.New("scene") - -function loader.OnLoad(asset) - -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/filesystem/script_loader.lua b/source/libs/asura-lib-framework/scripts/filesystem/script_loader.lua deleted file mode 100644 index e93d903..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/script_loader.lua +++ /dev/null @@ -1,5 +0,0 @@ -local loader = AsuraEngine.Loader.New("script") - -function loader.OnLoad(asset) - -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/filesystem/shader_loader.lua b/source/libs/asura-lib-framework/scripts/filesystem/shader_loader.lua deleted file mode 100644 index 12d88bb..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/shader_loader.lua +++ /dev/null @@ -1,5 +0,0 @@ -local loader = AsuraEngine.Loader.New("shader") - -function loader.OnLoad(asset) - -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/filesystem/statemap_loader.lua b/source/libs/asura-lib-framework/scripts/filesystem/statemap_loader.lua deleted file mode 100644 index e52e086..0000000 --- a/source/libs/asura-lib-framework/scripts/filesystem/statemap_loader.lua +++ /dev/null @@ -1,7 +0,0 @@ -require "ai/statemap_manager" -local loader = AsuraEngine.Loader.New("statemap") - ---杞藉叆statemap -function loader.OnLoad(asset) - -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/framework.lua b/source/libs/asura-lib-framework/scripts/framework.lua deleted file mode 100644 index 4643221..0000000 --- a/source/libs/asura-lib-framework/scripts/framework.lua +++ /dev/null @@ -1,21 +0,0 @@ -package.path = "scripts\\?.lua" - ---loader -local loadfn = function(modulename) - local errmsg = "" - local modulepath = string.gsub(modulename, "%.", "/") - for path in string.gmatch(package.path, "([^;]+)") do - local filename = string.gsub(path, "%?", modulepath) - filename = string.gsub(filename, "\\", "/") - local result = kleiloadlua(filename) - if result then - return result - end - errmsg = errmsg.."\n\tno file '"..filename.."' (checked with custom loader)" - end - return errmsg -end - -table.insert(package.loaders, 1, loadfn) - -require "" diff --git a/source/libs/asura-lib-framework/scripts/graphics/animation.lua b/source/libs/asura-lib-framework/scripts/graphics/animation.lua deleted file mode 100644 index 285adaa..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/animation.lua +++ /dev/null @@ -1,15 +0,0 @@ -AsuraEngine.Animation = AsuraEngine.Asset.Extend("Animation") - -local Animation = AsuraEngine.Animation - -local Frame = AsuraEngine.Class("Frame") - -function Frame.Ctor(self) - -end - -function Animation.Ctor(self) - -end - -return Animation \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/animator.lua b/source/libs/asura-lib-framework/scripts/graphics/animator.lua deleted file mode 100644 index fd2f979..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/animator.lua +++ /dev/null @@ -1,33 +0,0 @@ -local Component = AsuraEngine.Framework.Require("component") - -AsuraEngine.Animator = Component.Extend("Animator") - -local Animator = AsuraEngine.Animator - --- Animator inspector variables. -Animator.spriteRenderer = AsuraEngine.Type.SpriteRenderer -Animator.animation = AsuraEngine.Type.Animation - -function Animator:Ctor(entity, animation) - self.base(entity) - self.spriteRenderer = entity:GetSpriteRenderer() - self.animation = animation -end - -function Animator:SetAnimation(animation) - self.animation = animation -end - -function Animator:GetAnimation() - return self.animation -end - -function Animator:OnUpdate(dt) - -end - -function Animator:OnRender() - -end - -return Animator \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/camera.lua b/source/libs/asura-lib-framework/scripts/graphics/camera.lua deleted file mode 100644 index a989de6..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/camera.lua +++ /dev/null @@ -1,21 +0,0 @@ -AsuraEngine.Camera = AsuraEngine.Component.Extend("Camera") - -local Camera = AsuraEngine.Camera - -Camera.isCulling = AsuraEngine.Type.Bool -Camera.isOnScreen = AsuraEngine.Type.Bool - -function Camera.Ctor(self) - self.isCulling = false - self.isOnScreen = false -end - -function Camera.OnUpdate(dt) - -end - -function Camera.OnRender() - -end - -return Camera \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/canvas.lua b/source/libs/asura-lib-framework/scripts/graphics/canvas.lua deleted file mode 100644 index ce2ca20..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/canvas.lua +++ /dev/null @@ -1,34 +0,0 @@ -AsuraEngine.Canvas = AsuraEngine.Component.Extend("Canvas") - -local Canvas = AsuraEngine.Canvas - -function Canvas.Ctor(self, width, height) - self.simCanvas = AsuraEngine.SimCanvas.New(width, height) - self.width = width - self.height = height -end - -function Canvas.GetWidth(self) - return self.width -end - -function Canvas.GetHeight(self) - return self.height -end - -function Canvas.GetSize(self) - return self.width, self.height -end - -function Canvas.OnEnable(self) - if self.simCanvas == nil then - return - end - self.simCanvas:Begin() -end - -function Canvas.OnDisable(self) - -end - -return Canvas \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/default_shaders.lua b/source/libs/asura-lib-framework/scripts/graphics/default_shaders.lua deleted file mode 100644 index bd54cb9..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/default_shaders.lua +++ /dev/null @@ -1,5 +0,0 @@ ---[[ -内置的shaders. -]] - - diff --git a/source/libs/asura-lib-framework/scripts/graphics/image.lua b/source/libs/asura-lib-framework/scripts/graphics/image.lua deleted file mode 100644 index f5ebaa2..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/image.lua +++ /dev/null @@ -1,40 +0,0 @@ --- 鍥剧墖璧勬簮 -AsuraEngine.Image = AsuraEngine.Asset.Extend("Image") - -local Image = AsuraEngine.Image - -function Image.Ctor(self, path) - local simImage = AsuraEngine.SimImage.New(path) - local w, h = simImage:GetSize() - self.simImage = simImage - self.width = w - self.height = h -end - -function Image.GetWidth(self) - return self.simImage.GetWidth() -end - -function Image.GetHeight(self) - return self.simImage.GetHeight() -end - -function Image.GetSize(self) - return self.simImage.GetSize() -end - ---鑾峰緱x,y浣嶇疆鐨勯鑹插 -function Image.GetColor(self, x, y) - return self.simImage.GetColor(x, y) -end - ---鑾峰緱鎵鏈夊儚绱狅紝杩斿洖鍒颁竴涓猼able閲 -function Image.GetPixels(self) - return self.simImage:GetPixels() -end - ---image涓嶅彲鍐嶇紪杈戝櫒缂栬緫锛屾墍浠ユ病鏈塗oAsset鏂规硶 ---function Image.ToAsset() ---end - -return Image \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/material.lua b/source/libs/asura-lib-framework/scripts/graphics/material.lua deleted file mode 100644 index 5a6e5bd..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/material.lua +++ /dev/null @@ -1,48 +0,0 @@ ---material鏄痵hader鐨勪唬鐞 -AsuraEngine.Material = AsuraEngine.Asset.Extend("Material") - -local Material = AsuraEngine.Material - -function Material.Ctor(self) - self.uniforms = {} --uniform鍙橀噺鍜屽 - self.shader = nil - self.isShared = false -end - -function Material.Clone(self) - -end - -function Material:ToAsset() - -end - -function Material:GetUniform(name) - -end - -function Material:SetFloat(uniform, value) - -end - -function Material:SetTexture(uniform, tex) - -end - -function Material:SetInteger(unifrom, value) - -end - -function Material:SetVec2(uniform, value) - -end - -function Material:SetMat44(uniform, value) - -end - -function Material:GetUniformID() - -end - -return Material \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/material_manager.lua b/source/libs/asura-lib-framework/scripts/graphics/material_manager.lua deleted file mode 100644 index 086a5db..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/material_manager.lua +++ /dev/null @@ -1,3 +0,0 @@ -local MaterialManager = AsuraEngine.Manager.New() - -return MaterialManager \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/mesh2d.lua b/source/libs/asura-lib-framework/scripts/graphics/mesh2d.lua deleted file mode 100644 index 05b2e2e..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/mesh2d.lua +++ /dev/null @@ -1,9 +0,0 @@ -AsuraEngine.Mesh2D = AsuraEngine.Asset.Extend("Mesh2D") - -local Mesh2D = AsuraEngine.Mesh2D - -function Mesh2D.Ctor(self) - -end - -return Mesh2D \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/mesh2d_renderer.lua b/source/libs/asura-lib-framework/scripts/graphics/mesh2d_renderer.lua deleted file mode 100644 index 09c8c98..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/mesh2d_renderer.lua +++ /dev/null @@ -1,13 +0,0 @@ -AsuraEngine.Mesh2DRenderer = AsuraEngine.Renderer.Extend("Mesh2DRenderer") - -local Mesh2DRenderer = AsuraEngine.Mesh2DRenderer - -function Mesh2DRenderer.Ctor(self, material) - self.base(material) -end - -function Mesh2DRenderer.OnRender(self) - -end - -return Mesh2DRenderer \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/particle_system.lua b/source/libs/asura-lib-framework/scripts/graphics/particle_system.lua deleted file mode 100644 index 065a845..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/particle_system.lua +++ /dev/null @@ -1,20 +0,0 @@ -require "graphics.sprite_renderer" - -AsuraEngine.ParticleSystem = AsuraEngine.Component.Extend("ParticleSystem") - -local ParticleSystem = AsuraEngine.ParticleSystem - -function ParticleSystem.Ctor(self, entity, def) - self.base(entity) - self.spriteRenderer = AsuraEngine.SpriteRenderer.New() -end - -function ParticleSystem.OnRenderer() - -end - -function ParticleSystem.OnUpdate(dt) - -end - -return ParticleSystem \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/renderer.lua b/source/libs/asura-lib-framework/scripts/graphics/renderer.lua deleted file mode 100644 index 92a6409..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/renderer.lua +++ /dev/null @@ -1,19 +0,0 @@ -local Renderer = AsuraEngine.Component.Extend("Renderer") -AsuraEngine.Renderer = Renderer - -function Renderer.Ctor(self) - self.materials = {} - self.material = nil - self.isMultiMaterials = false -end - ---鍙栨潗璐紝濡傛灉鏄痵hared锛岄偅涔堜粠姝ゆ潗璐╟lone涓涓 -function Renderer.GetMaterial(self) - -end - -function Renderer.IsMultiMaterials(self) - return self.isMultiMaterials -end - -return Renderer \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/shader.lua b/source/libs/asura-lib-framework/scripts/graphics/shader.lua deleted file mode 100644 index c411619..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/shader.lua +++ /dev/null @@ -1,75 +0,0 @@ -AsuraEngine.Shader = AsuraEngine.Asset.Extend("Shader") - -local helper = AsuraEngine.Framework.Require("graphics/shaderHelper") - -local Shader = AsuraEngine.Shader - -function Shader.Ctor(self) - self.simShader = nil - self.uniforms = {} -- 鏄犲皠uniform name鍒發ocation -end - ---缂栬瘧shader -function Shader.Load(self, vert, frag) - self.uniforms = {} - if self.simShader == nil then - self.simShader = AsuraEngine.SimShader.New(vert, frag) - else - self.simShader:Load(vert, frag) - end - if self.simShader == nil then - --shader缂栬瘧閿欒 - return - end - --鍦ㄧ紪璇戠殑鏃跺欏氨鑾峰緱鎵鏈夌殑uniform鍜宭oc - local uniforms = helper.GetUniforms(vert, frag) - if uniforms == nil then - return - end - for _, uniform in uniforms do - self.uniforms[uniform] = self.simShader:GetUniformLocation(uniform) - end -end - -function Shader.GetUniformLocation(self, name) - if self.uniforms then - local id = self.uniforms[name] - return id - end - return 0 -end - -function Shader.SendVec2(self, name, vec2) - local id = self:GetUniformLocation(name) - self.simShader:SendUniformVector2(name, vec2) -end - -function Shader.SendVec3(self, name, vec3) - -end - -function Shader.SendVec4(self, name, vec4) - -end - -function Shader.SendTexture(self, name, tex) - -end - -function Shader.SendFloat(self, name, number) - -end - -function Shader.SendInteger(self, name, integer) - -end - -function Shader.SendColor(self, name, color) - -end - -function Shader.SendMat44(self, name, mat44) - -end - -return Shader \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/shaderHelper.lua b/source/libs/asura-lib-framework/scripts/graphics/shaderHelper.lua deleted file mode 100644 index b1b42a6..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/shaderHelper.lua +++ /dev/null @@ -1,14 +0,0 @@ ---[[ -瑙f瀽vertex shader鍜 fragment shader锛屽苟鍙栧緱涓や釜shader閲岄潰瀹氫箟鐨剈niforms -]] -local helper = {} - -function helper.GetUniforms(vert, frag) - -end - -function helper.TryCompileShader(vert, frag) - -end - -return helper \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/shape.lua b/source/libs/asura-lib-framework/scripts/graphics/shape.lua deleted file mode 100644 index 51ea8c3..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/shape.lua +++ /dev/null @@ -1,12 +0,0 @@ --- --- 2D鍥惧舰 --- -AsuraEngine.Shape = AsuraEngine.Asset.Extend("Shape") - -local Shape = AsuraEngine.Shape - -function Shape.Ctor(self) - -end - -return Shape \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/shape_renderer.lua b/source/libs/asura-lib-framework/scripts/graphics/shape_renderer.lua deleted file mode 100644 index 80b48b8..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/shape_renderer.lua +++ /dev/null @@ -1,13 +0,0 @@ -AsuraEngine.ShapeRenderer = AsuraEngine.Component.Extend("ShapeRenderer") - -local ShapeRenderer = AsuraEngine.ShapeRenderer - -function ShapeRenderer.OnRenderer() - -end - -function ShapeRenderer.OnUpdate(dt) - -end - -return ShapeRenderer \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/sprite.lua b/source/libs/asura-lib-framework/scripts/graphics/sprite.lua deleted file mode 100644 index 9bf05f4..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/sprite.lua +++ /dev/null @@ -1,10 +0,0 @@ -local Sprite = AsuraEngine.Asset.Extend("Sprite") -AsuraEngine.Sprite = Sprite - -function Sprite.Ctor(self, image) - self.image = image -end - -function Sprite.ToAsset(self) - -end \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/sprite_batch_renderer.lua b/source/libs/asura-lib-framework/scripts/graphics/sprite_batch_renderer.lua deleted file mode 100644 index 9ec73d2..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/sprite_batch_renderer.lua +++ /dev/null @@ -1,9 +0,0 @@ -AsuraEngine.SpriteBatchRenderer = AsuraEngine.Component.Extend("SpriteBatchRenderer") - -local SpriteBatchRenderer = AsuraEngine.SpriteBatchRenderer - -function SpriteBatchRenderer.Ctor(self) - -end - -return SpriteBatchRenderer \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/graphics/sprite_renderer.lua b/source/libs/asura-lib-framework/scripts/graphics/sprite_renderer.lua deleted file mode 100644 index 0a41e08..0000000 --- a/source/libs/asura-lib-framework/scripts/graphics/sprite_renderer.lua +++ /dev/null @@ -1,14 +0,0 @@ -require "graphics.renderer" - -local SpriteRenderer = AsuraEngine.Renderer.Extend("Spriterenderer") -AsuraEngine.SpriteRenderer = SpriteRenderer - -function SpriteRenderer.Ctor(self) - self.materials = {} -end - -function SpriteRenderer:OnRender() - -end - -return SpriteRenderer \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/gui/button.lua b/source/libs/asura-lib-framework/scripts/gui/button.lua deleted file mode 100644 index b122931..0000000 --- a/source/libs/asura-lib-framework/scripts/gui/button.lua +++ /dev/null @@ -1,21 +0,0 @@ -AsuraEngine.Button = AsuraEngine.Component.Extend("Button") - -local Button = AsuraEngine.Button - -function Button.Ctor(self) - -end - -function Button.OnEvent(e) - -end - -function Button.OnRender() - -end - -function Button.OnUpdate(dt) - -end - -return Button \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/gui/text.lua b/source/libs/asura-lib-framework/scripts/gui/text.lua deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-framework/scripts/gui/widget.lua b/source/libs/asura-lib-framework/scripts/gui/widget.lua deleted file mode 100644 index 430ade0..0000000 --- a/source/libs/asura-lib-framework/scripts/gui/widget.lua +++ /dev/null @@ -1,14 +0,0 @@ ---[[ -Imgui锛岀敤鍦ㄦ父鎴忛噷闈 -]] -local Widget = AsuraEngine.Component("Widget") - -function Widget.Ctor(self) - -end - -function Widget.OnEvent(self, e) - -end - -return Widget \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/managers/scene_manager.lua b/source/libs/asura-lib-framework/scripts/managers/scene_manager.lua deleted file mode 100644 index 7886dc6..0000000 --- a/source/libs/asura-lib-framework/scripts/managers/scene_manager.lua +++ /dev/null @@ -1,16 +0,0 @@ -AsuraEngine.SceneManager = AsuraEngine.Class("SceneManager") - -local SceneManager = AsuraEngine.SceneManager - ---娓告垙閲岀殑鎵鏈夊満鏅 -SceneManager.scenes = {} - -function SceneManager.Ctor() - -end - -function SceneManager.GetSceneByGUID() - -end - -return SceneManager \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/managers/sprite_manager.lua b/source/libs/asura-lib-framework/scripts/managers/sprite_manager.lua deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-framework/scripts/math/curve.lua b/source/libs/asura-lib-framework/scripts/math/curve.lua deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-framework/scripts/path/path.lua b/source/libs/asura-lib-framework/scripts/path/path.lua deleted file mode 100644 index 1fc9b3a..0000000 --- a/source/libs/asura-lib-framework/scripts/path/path.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Path = AsuraEngine.Asset.New("path") - -function Path:Ctor() - -end - --- ToAsset方法把对象path转换为.asset文件格式 -function Path.ToAsset(path) - local builder = AsuraEngine.AssetBuilder.Get() - -end - -return Path \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/path/path_calculator.lua b/source/libs/asura-lib-framework/scripts/path/path_calculator.lua deleted file mode 100644 index d44da08..0000000 --- a/source/libs/asura-lib-framework/scripts/path/path_calculator.lua +++ /dev/null @@ -1,12 +0,0 @@ ---[[ -组件。组件会出现在编辑器的components列表中 -]] -local PathCalculator = AsuraEngine.Component.New("PathCalculator") - -PathCalculator.path = AsuraEngine.Asset.Type("path", "路径") - -function PathCalculator:ctor(path) - self.path = path -end - -return PathCalculator \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/path/path_manager.lua b/source/libs/asura-lib-framework/scripts/path/path_manager.lua deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-framework/scripts/scene.lua b/source/libs/asura-lib-framework/scripts/scene.lua deleted file mode 100644 index 11ac86c..0000000 --- a/source/libs/asura-lib-framework/scripts/scene.lua +++ /dev/null @@ -1,22 +0,0 @@ --- --- Scene鏄竴绯诲垪gameobject鐨勯泦鍚堛 --- -AsuraEngine.Scene = AsuraEngine.Asset.Extend("Scene") - -local Scene = AsuraEngine.Scene - -function Scene.Ctor(self) - self.rootGameObjects = {} --褰撳墠鍦烘櫙鐨勬墍鏈塺oot entity - self.super.Ctor(self) -end - ---鑾峰彇褰撳墠鐨勫満鏅 -function Scene.GetCurrent() - -end - -function Scene.ToAsset() - -end - -return Scene \ No newline at end of file diff --git a/source/libs/asura-lib-framework/scripts/transform.lua b/source/libs/asura-lib-framework/scripts/transform.lua deleted file mode 100644 index 1d34ae6..0000000 --- a/source/libs/asura-lib-framework/scripts/transform.lua +++ /dev/null @@ -1,13 +0,0 @@ --- transform鐨勮捣鐐瑰湪宸︿笅瑙掞紝閫嗘椂閽堜负姝e悜 -AsuraEngine.Transform = AsuraEngine.Class("Transform") -local Transform = AsuraEngine.Transform - -function Transform.Ctor(self) - self.position = {x=0, y=0} - self.rotation = 0 - self.size = {w=0, h=0} -end - -function Transform.Move(self) - -end \ No newline at end of file diff --git a/source/libs/asura-lib-json/json.cpp b/source/libs/asura-lib-json/json.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-json/json.h b/source/libs/asura-lib-json/json.h deleted file mode 100644 index 2bdaf53..0000000 --- a/source/libs/asura-lib-json/json.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __ASURA_JSON_H__ -#define __ASURA_JSON_H__ - -namespace AsuraEngine -{ - namespace Json - { - - - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-json/json_module.cpp b/source/libs/asura-lib-json/json_module.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-json/json_module.h b/source/libs/asura-lib-json/json_module.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-openal/sound.cpp b/source/libs/asura-lib-openal/sound.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-openal/sound.h b/source/libs/asura-lib-openal/sound.h deleted file mode 100644 index 6c2d7c2..0000000 --- a/source/libs/asura-lib-openal/sound.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __ASURA_ENGINE_SOUND_H__ -#define __ASURA_ENGINE_SOUND_H__ - -#include - -namespace AsuraEngine -{ - namespace Audio - { - - /// - /// 音频文件 - /// - class Sound ASURA_FINAL - : public AEScripting::Portable - { - public: - - Sound(); - ~Sound(); - - private: - - - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-openal/sound_decode_task.cpp b/source/libs/asura-lib-openal/sound_decode_task.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-openal/sound_decode_task.h b/source/libs/asura-lib-openal/sound_decode_task.h deleted file mode 100644 index d39013f..0000000 --- a/source/libs/asura-lib-openal/sound_decode_task.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __ASURA_OPENAL_SOUND_DECODER_TASK_H__ -#define __ASURA_OPENAL_SOUND_DECODER_TASK_H__ - -#include - -namespace AsuraEngine -{ - namespace OpenAL - { - - /// - /// 解析音频文件任务。 - /// - class SoundDecodeTask : public AEThreading::ThreadTask - { - public: - - private: - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-openal/sound_decoder.cpp b/source/libs/asura-lib-openal/sound_decoder.cpp deleted file mode 100644 index ad9f761..0000000 --- a/source/libs/asura-lib-openal/sound_decoder.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __ASURA_ENGINE_SOUND_DECODER_H__ -#define __ASURA_ENGINE_SOUND_DECODER_H__ - -#include "Sound.h" -#include "FileSystem/DataBuffer.h" - -namespace AsuraEngine -{ - namespace Audio - { - - /// - /// 解析音频文件 - /// - class SoundDecoder - { - public: - - SoundDecoder(); - virtual ~SoundDecoder(); - - virtual Sound* Decode(const Filesystem::DataBuffer* db); - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-openal/sound_decoder.h b/source/libs/asura-lib-openal/sound_decoder.h deleted file mode 100644 index 2a3f087..0000000 --- a/source/libs/asura-lib-openal/sound_decoder.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __ASURA_ENGINE_SOUND_DECODER_H__ -#define __ASURA_ENGINE_SOUND_DECODER_H__ - -#include - -#include "sound.h" - -namespace AsuraEngine -{ - namespace Audio - { - - /// - /// 解析音频文件 - /// - class SoundDecoder - { - public: - - SoundDecoder(); - virtual ~SoundDecoder(); - - virtual Sound* Decode(const AEIO::DataBuffer* db); - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/exceptions/exception.cpp b/source/libs/asura-lib-utils/exceptions/exception.cpp deleted file mode 100644 index dbb36ca..0000000 --- a/source/libs/asura-lib-utils/exceptions/exception.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include "Exception.h" - -#include -#include - -namespace AsuraEngine -{ - - Exception::Exception(const char *fmt, ...) - { - va_list args; - int size_buffer = 256, size_out; - char *buffer; - while (true) - { - buffer = new char[size_buffer]; - memset(buffer, 0, size_buffer); - - va_start(args, fmt); - size_out = vsnprintf(buffer, size_buffer, fmt, args); - va_end(args); - - // see http://perfec.to/vsnprintf/pasprintf.c - // if size_out ... - // == -1 --> output was truncated - // == size_buffer --> output was truncated - // == size_buffer-1 --> ambiguous, /may/ have been truncated - // > size_buffer --> output was truncated, and size_out - // bytes would have been written - if (size_out == size_buffer || size_out == -1 || size_out == size_buffer - 1) - size_buffer *= 2; - else if (size_out > size_buffer) - size_buffer = size_out + 2; // to avoid the ambiguous case - else - break; - - delete[] buffer; - } - message = std::string(buffer); - delete[] buffer; - } - - Exception::~Exception() throw() - { - } - -} diff --git a/source/libs/asura-lib-utils/exceptions/exception.h b/source/libs/asura-lib-utils/exceptions/exception.h deleted file mode 100644 index 57c9ed6..0000000 --- a/source/libs/asura-lib-utils/exceptions/exception.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef __ASURA_ENGINE_EXCEPTION_H__ -#define __ASURA_ENGINE_EXCEPTION_H__ - -#include -#include - -namespace AsuraEngine -{ - - /** - * A convenient vararg-enabled exception class. - **/ - class Exception : public std::exception - { - public: - - /** - * Creates a new Exception according to printf-rules. - * - * See: http://www.cplusplus.com/reference/clibrary/cstdio/printf/ - * - * @param fmt The format string (see printf). - **/ - Exception(const char *fmt, ...); - virtual ~Exception() throw(); - - /** - * Returns a string containing reason for the exception. - * @return A description of the exception. - **/ - inline virtual const char *what() const throw() - { - return message.c_str(); - } - - private: - - std::string message; - - }; // Exception - -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/binding/_compressor.cpp b/source/libs/asura-lib-utils/io/binding/_compressor.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/io/binding/_data_buffer.cpp b/source/libs/asura-lib-utils/io/binding/_data_buffer.cpp deleted file mode 100644 index cd73b31..0000000 --- a/source/libs/asura-lib-utils/io/binding/_data_buffer.cpp +++ /dev/null @@ -1,123 +0,0 @@ -#include "../data_buffer.h" - -using namespace Luax; - -namespace AsuraEngine -{ - namespace IO - { - - LUAX_REGISTRY(DataBuffer) - { - LUAX_REGISTER_METHODS(state, - { "New", _New }, - { "GetData", _GetData }, - { "GetSize", _GetSize }, - { "Refactor", _Refactor }, - { "Load", _Load }, - { "Clear", _Clear } - ); - } - - LUAX_POSTPROCESS(DataBuffer) - { - } - - // databuffer = DataBuffer.New(lstring) - // databuffer = DataBuffer.New(size) - LUAX_IMPL_METHOD(DataBuffer, _New) - { - LUAX_STATE(L); - - if (state.IsType(1, LUA_TSTRING)) - { - size_t size; - const byte* bytes = lua_tolstring(L, 1, &size); - DataBuffer* buffer = new DataBuffer(bytes, size); - buffer->PushLuaxUserdata(state); - return 1; - } - else if (state.IsType(1, LUA_TNUMBER)) - { - size_t size = lua_tonumber(L, 1); - DataBuffer* buffer = new DataBuffer(size); - buffer->PushLuaxUserdata(state); - return 1; - } - else - { - return state.ErrorType(1, "number or string"); - } - } - - // lsting, len = databuffer:GetData() - LUAX_IMPL_METHOD(DataBuffer, _GetData) - { - LUAX_SETUP(L, "U"); - - DataBuffer* self = state.GetUserdata(1); - lua_pushlstring(L, self->GetData(), self->GetSize()); - return 1; - } - - // length = databuffer:GetSize() - LUAX_IMPL_METHOD(DataBuffer, _GetSize) - { - LUAX_SETUP(L, "U"); - - DataBuffer* self = state.GetUserdata(1); - lua_pushinteger(L, self->GetSize()); - return 1; - } - - // databuffer:Refactor(size) - LUAX_IMPL_METHOD(DataBuffer, _Refactor) - { - LUAX_PREPARE(L, DataBuffer); - - size_t size = state.CheckValue(2); - self->Refactor(size); - return 0; - } - - // size = databuffer:Load(lstring) - // size = databuffer:Load(src) - LUAX_IMPL_METHOD(DataBuffer, _Load) - { - LUAX_STATE(L); - - DataBuffer* buffer = state.GetUserdata(1); - const byte* data; - size_t size; - if (state.IsType(2, LUA_TSTRING)) - { - data = lua_tolstring(L, 2, &size); - size_t len = buffer->Load(data, size); - state.Push(len); - return 1; - } - else if(state.IsType(2, LUA_TUSERDATA)) - { - DataBuffer* src = state.CheckUserdata(2); - size_t len = buffer->Load(*src); - state.Push(len); - return 1; - } - else - { - return state.ErrorType(1, "lstring or DataBuffer"); - } - } - - // databuffer:Clear() - LUAX_IMPL_METHOD(DataBuffer, _Clear) - { - LUAX_SETUP(L, "U"); - - DataBuffer* self = state.GetUserdata(1); - self->Clear(); - return 0; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/binding/_file.cpp b/source/libs/asura-lib-utils/io/binding/_file.cpp deleted file mode 100644 index c44bc90..0000000 --- a/source/libs/asura-lib-utils/io/binding/_file.cpp +++ /dev/null @@ -1,223 +0,0 @@ -#include "../file.h" - -namespace AsuraEngine -{ - namespace IO - { - - LUAX_REGISTRY(File) - { - LUAX_REGISTER_METHODS(state, - { "New", _New }, - { "Open", _Open }, - { "Close", _Close }, - { "IsOpen", _IsOpen }, - { "GetMode", _GetMode }, - { "GetSize", _GetSize }, - { "Read", _Read }, - { "IsEOF", _IsEOF }, - { "Write", _Write }, - { "Flush", _Flush }, - { "Tell", _Tell }, - { "Seek", _Seek }, - { "SetBuffer", _SetBuffer }, - { "GetBuffer", _GetBuffer }, - { "GetFileName", _GetFileName }, - { "GetExtension", _GetExtension }, - { "GetName", _GetName } - ); - } - - LUAX_POSTPROCESS(File) - { - LUAX_REGISTER_ENUM(state, "EFileMode", - { "CLOSED", FILE_MODE_CLOSED }, - { "READ", FILE_MODE_READ }, - { "WRITE", FILE_MODE_WRITE }, - { "APPEND", FILE_MODE_APPEND } - ); - - LUAX_REGISTER_ENUM(state, "EBufferMode", - { "NONE", BUFFER_MODE_NONE}, - { "LINE", BUFFER_MODE_LINE}, - { "FULL", BUFFER_MODE_FULL} - ); - } - - // file = File.New(name) - LUAX_IMPL_METHOD(File, _New) - { - LUAX_STATE(L); - - cc8* name = state.CheckValue(1); - File* file = new File(name); - file->PushLuaxUserdata(state); - return 1; - } - - // successsed = file:Open(mode) - LUAX_IMPL_METHOD(File, _Open) - { - LUAX_PREPARE(L, File); - - File::FileMode mode = (File::FileMode)state.CheckValue(2); - state.Push(self->Open(mode)); - return 1; - } - - // successed = file:Close() - LUAX_IMPL_METHOD(File, _Close) - { - LUAX_PREPARE(L, File); - - state.Push(self->Close()); - return 1; - } - - // opened = file:IsOpen() - LUAX_IMPL_METHOD(File, _IsOpen) - { - LUAX_PREPARE(L, File); - - state.Push(self->IsOpen()); - return 1; - } - - // mode = file:GetMode() - LUAX_IMPL_METHOD(File, _GetMode) - { - LUAX_PREPARE(L, File); - - File::FileMode mode = self->GetMode(); - state.Push((int)mode); - return 1; - } - - // size = file:GetSize() - LUAX_IMPL_METHOD(File, _GetSize) - { - LUAX_PREPARE(L, File); - - state.Push(self->GetSize()); - return 1; - } - - // size = file:Read(dst, len) - // returns: - // size 实际读入的大小 - // params: - // self 文件 - // dst 目标缓冲区 - // len 期望读入的大小 - LUAX_IMPL_METHOD(File, _Read) - { - LUAX_PREPARE(L, File); - - DataBuffer* db = state.CheckUserdata(2); - if (!db) return state.ErrorType(2, "DataBuffer"); - int len = state.CheckValue(3); - int size = self->Read(db, len); - state.Push(size); - return 1; - } - - // isEOF = file:IsEOF() - LUAX_IMPL_METHOD(File, _IsEOF) - { - LUAX_PREPARE(L, File); - - state.Push(self->IsEOF()); - return 1; - } - - // isWrite = file:Write(data buffer[, size]) - LUAX_IMPL_METHOD(File, _Write) - { - LUAX_PREPARE(L, File); - - DataBuffer* db = state.CheckUserdata(2); - if (!db) return state.ErrorType(2, "DataBuffer"); - state.Push(self->Write(db)); - return 1; - } - - // isFlushed = file:Flush() - LUAX_IMPL_METHOD(File, _Flush) - { - LUAX_PREPARE(L, File); - - state.Push(self->Flush()); - return 1; - } - - // pos = file:Tell() - LUAX_IMPL_METHOD(File, _Tell) - { - LUAX_PREPARE(L, File); - - state.Push(self->Tell()); - return 1; - } - - // isSeek = file:Seek(pos) - LUAX_IMPL_METHOD(File, _Seek) - { - LUAX_PREPARE(L, File); - - int pos = state.CheckValue(2); - state.Push(self->Seek(pos)); - return 1; - } - - // isSetted = file:SetBuffer(mode, size) - LUAX_IMPL_METHOD(File, _SetBuffer) - { - LUAX_PREPARE(L, File); - - BufferMode mode = (BufferMode)state.CheckValue(2); - int size = state.CheckValue(3); - state.Push(self->SetBuffer(mode, size)); - return 1; - } - - // size, mode = file:GetBuffer() - LUAX_IMPL_METHOD(File, _GetBuffer) - { - LUAX_PREPARE(L, File); - - size_t size = 0; - BufferMode mode = self->GetBuffer(ASURA_OUT size); - state.Push((int)size); - state.Push((int)mode); - return 2; - } - - // name = file:GetFileName() - LUAX_IMPL_METHOD(File, _GetFileName) - { - LUAX_PREPARE(L, File); - - state.Push(self->GetFileName()); - return 1; - } - - // name = file:GetExtension() - LUAX_IMPL_METHOD(File, _GetExtension) - { - LUAX_PREPARE(L, File); - - state.Push(self->GetExtension()); - return 1; - } - - // name = file:GetName() - LUAX_IMPL_METHOD(File, _GetName) - { - LUAX_PREPARE(L, File); - - state.Push(self->GetName()); - return 1; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/binding/_file_data.cpp b/source/libs/asura-lib-utils/io/binding/_file_data.cpp deleted file mode 100644 index 09a0643..0000000 --- a/source/libs/asura-lib-utils/io/binding/_file_data.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "../file_data.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace IO - { - - LUAX_REGISTRY(FileData) - { - LUAX_REGISTER_METHODS(state, - { "GetFileName", _GetFileName }, - { "GetExtension", _GetExtension }, - { "GetName", _GetName }, - { "GetDataBuffer", _GetDataBuffer } - ); - } - - LUAX_POSTPROCESS(FileData) - { - } - - // filename = filedata:GetFileName() - LUAX_IMPL_METHOD(FileData, _GetFileName) - { - LUAX_PREPARE(L, FileData); - string filename = self->GetFileName(); - state.Push(filename); - return 1; - } - - // extension = filedata:GetExtension() - LUAX_IMPL_METHOD(FileData, _GetExtension) - { - LUAX_PREPARE(L, FileData); - string extension = self->GetExtension(); - state.Push(extension); - return 1; - } - - // name = filedata:GetName() - LUAX_IMPL_METHOD(FileData, _GetName) - { - LUAX_PREPARE(L, FileData); - string extension = self->GetName(); - state.Push(extension); - return 1; - } - - // databuffer = filedata:GetDataBuffer() - LUAX_IMPL_METHOD(FileData, _GetDataBuffer) - { - LUAX_PREPARE(L, FileData); - self->PushLuaxMemberRef(state, self->mDataRef); - return 1; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/binding/_file_system.cpp b/source/libs/asura-lib-utils/io/binding/_file_system.cpp deleted file mode 100644 index 3843451..0000000 --- a/source/libs/asura-lib-utils/io/binding/_file_system.cpp +++ /dev/null @@ -1,265 +0,0 @@ -#include "../file_system.h" - -using namespace Luax; - -namespace AsuraEngine -{ - namespace IO - { - -#define PREPARE(l) \ - LUAX_STATE(l); \ - Filesystem* fs = Filesystem::Get(); - - LUAX_REGISTRY(Filesystem) - { - LUAX_REGISTER_METHODS(state, - { "Init", _Init }, - { "Mount", _Mount }, - { "Unmount", _Unmount }, - { "GetMountPoint", _GetMountPoint }, - { "SetWriteDirectory", _SetWriteDirectory }, - { "GetWriteDirectory", _GetWriteDirectory }, - { "CreateFile", _CreateFile }, - { "CreateDirectory", _CreateDirectory }, - { "Write", _Write }, - { "Append", _Append }, - { "Remove", _Remove }, - { "Read", _Read }, - { "GetFileInfo", _GetFileInfo }, - { "GetDirectoryItems", _GetDirectoryItems } - ); - } - - LUAX_POSTPROCESS(Filesystem) - { - LUAX_REGISTER_ENUM(state, "EFileType", - { "FILE", FILE_TYPE_FILE }, - { "DIRECTORY", FILE_TYPE_DIRECTORY }, - { "SYMLINK", FILE_TYPE_SYMLINK }, - { "OTHER", FILE_TYPE_OTHER } - ); - } - - // Filesystem.Init(arg0) - LUAX_IMPL_METHOD(Filesystem, _Init) - { - PREPARE(L); - - const char* arg0 = state.CheckValue(1); - fs->Init(arg0); - return 0; - } - - // successed = Filesystem.Mount(path, mountpoint[, prepend = false]) - // successed = Filesystem.Mount(data buffer, archievename, mountpoint[, prepend = false]) - LUAX_IMPL_METHOD(Filesystem, _Mount) - { - PREPARE(L); - bool mounted = false; - - if (state.IsType(1, LUA_TSTRING)) - { - cc8* path = state.GetValue(1, ""); - cc8* moutpoint = state.GetValue(2, "/"); - bool prepend = state.GetValue(3, false); - mounted = fs->Mount(path, moutpoint, prepend); - } - else if (state.IsType(1, LUA_TUSERDATA)) - { - DataBuffer* db = state.CheckUserdata(1); - if (!db) - return state.ErrorType(1, "Data Buffer"); - cc8* arcname = state.GetValue(2, ""); - cc8* mountpoint = state.GetValue(3, "/"); - bool prepend = state.GetValue(4, false); - mounted = fs->Mount(db, arcname, mountpoint, prepend); - // retain - fs->LuaxRetain(state, db); - } - state.Push(mounted); - return 1; - } - - // successed = Filesystem.Unmount(path) - // successed = Filesystem.Unmount(data buffer) - LUAX_IMPL_METHOD(Filesystem, _Unmount) - { - PREPARE(L); - bool unmounted = false; - - if (state.IsType(1, LUA_TSTRING)) - { - cc8* path = state.GetValue(1, ""); - unmounted = fs->Unmount(path); - } - else if (state.IsType(1, LUA_TUSERDATA)) - { - DataBuffer* db = state.CheckUserdata(1); - if (!db) - return state.ErrorType(1, "Data Buffer"); - unmounted = fs->Unmount(db); - if (unmounted) - fs->LuaxRelease(state, db); - } - state.Push(unmounted); - return 1; - } - - // moutpoint = Filesystem.GetMountPoint(path) - LUAX_IMPL_METHOD(Filesystem, _GetMountPoint) - { - PREPARE(L); - - cc8* path = state.CheckValue(1); - std::string mp; - if (fs->GetMountPoint(path, ASURA_OUT mp)) - state.Push(mp); - else - state.PushNil(); - - return 1; - } - - // Filesystem.SetWriteDirectory(dir) - LUAX_IMPL_METHOD(Filesystem, _SetWriteDirectory) - { - PREPARE(L); - - cc8* dir = state.CheckValue(1); - fs->SetWriteDirectory(dir); - return 0; - } - - // dir = Filesystem.GetWriteDirectory() - LUAX_IMPL_METHOD(Filesystem, _GetWriteDirectory) - { - PREPARE(L); - - std::string dir = fs->GetWriteDirectory(); - state.Push(dir); - return 1; - } - - // file = Filesystem.CreateFile(name) - LUAX_IMPL_METHOD(Filesystem, _CreateFile) - { - PREPARE(L); - - cc8* name = state.CheckValue(1); - File* file = fs->NewFile(name); - if (file) - file->PushLuaxUserdata(state); - else - state.PushNil(); - return 1; - } - - // successed = Filesystem.CreateDirectory(name) - LUAX_IMPL_METHOD(Filesystem, _CreateDirectory) - { - PREPARE(L); - - cc8* path = state.CheckValue(1); - state.Push(fs->NewDirectory(path)); - return 1; - } - - // successed = Filesystem.Write(path, data buffer) - LUAX_IMPL_METHOD(Filesystem, _Write) - { - PREPARE(L); - - cc8* path = state.CheckValue(1); - DataBuffer* db = state.CheckUserdata(2); - state.Push(fs->Write(path, db)); - return 1; - } - - // successed = Filesystem.Append(path, data buffer) - LUAX_IMPL_METHOD(Filesystem, _Append) - { - PREPARE(L); - - cc8* path = state.CheckValue(1); - DataBuffer* db = state.CheckUserdata(2); - state.Push(fs->Append(path, db)); - return 1; - } - - // successed = Filesystem.Remove(path) - LUAX_IMPL_METHOD(Filesystem, _Remove) - { - PREPARE(L); - - cc8* path = state.CheckValue(1); - state.Push(fs->Remove(path)); - return 1; - } - - // filedata = Filesystem.Read(path) - LUAX_IMPL_METHOD(Filesystem, _Read) - { - PREPARE(L); - - cc8* path = state.CheckValue(1); - FileData* fd = fs->Read(path); - if (fd) - { - fd->mData->PushLuaxUserdata(state); - fd->SetLuaxMemberRef(state, fd->mDataRef, -1); // fd->mDataRef = data buffer - state.Pop(1); // data buffer - fd->PushLuaxUserdata(state); - } - else - { - state.PushNil(); - } - return 1; - } - - // fileinfo = Filesystem.GetFileInfo(path) - LUAX_IMPL_METHOD(Filesystem, _GetFileInfo) - { - PREPARE(L); - - cc8* path = state.CheckValue(1); - FileInfo info; - if (fs->GetFileInfo(path, &info)) - { - lua_newtable(L); // info table - state.SetField(-1, "size", info.size); - state.SetField(-1, "modtime", info.modtime); - state.SetField(-1, "type", info.type); - } - else - { - state.PushNil(); - } - return 1; - } - - // items = Filesystem.GetDirectoryItems(path) - LUAX_IMPL_METHOD(Filesystem, _GetDirectoryItems) - { - PREPARE(L); - - cc8* path = state.CheckValue(1); - std::vector items; - if(fs->GetDirectoryItems(path, ASURA_OUT items)) - { - lua_newtable(L); // item list - for (int i = 0; i < items.size(); ++i) - { - state.SetFieldByIndex(-1, i + 1, items[i]); - } - } - else - { - state.PushNil(); - } - return 1; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/binding/_io_task.cpp b/source/libs/asura-lib-utils/io/binding/_io_task.cpp deleted file mode 100644 index b3c5988..0000000 --- a/source/libs/asura-lib-utils/io/binding/_io_task.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "../io_task.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace IO - { - - LUAX_REGISTRY(IOTask) - { - LUAX_REGISTER_METHODS(state, - { "New", _New } - ); - } - - LUAX_POSTPROCESS(IOTask) - { - LUAX_REGISTER_ENUM(state, "EIOTaskType", - { "READ", IOTASK_TYPE_READ }, - { "WRITE", IOTASK_TYPE_WRITE }, - { "APPEND", IOTASK_TYPE_APPEND } - ); - - } - - // task = IOTask.New(path, buffer, type, callback) - LUAX_IMPL_METHOD(IOTask, _New) - { - LUAX_STATE(L); - - cc8* path = state.CheckValue(1); - DataBuffer* db = state.CheckUserdata(2); - IOTaskType type = (IOTaskType)state.CheckValue(3); - bool cbk = state.GetTop() >= 4 && state.IsType(4, LUA_TFUNCTION); - - IOTask* task = new IOTask(path, db, type); - task->SetLuaxMemberRef(state, task->mBufferRef, 2); - if(cbk) - task->SetLuaxMemberRef(state, task->mCallback, 4); - task->PushLuaxUserdata(state); - return 1; - } - - } -} diff --git a/source/libs/asura-lib-utils/io/compressor.cpp b/source/libs/asura-lib-utils/io/compressor.cpp deleted file mode 100644 index 095eff4..0000000 --- a/source/libs/asura-lib-utils/io/compressor.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "compressor.h" - -namespace AsuraEngine -{ - namespace IO - { - - - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/compressor.h b/source/libs/asura-lib-utils/io/compressor.h deleted file mode 100644 index 30a074c..0000000 --- a/source/libs/asura-lib-utils/io/compressor.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __ASURA_COMPRESSOR_H__ -#define __ASURA_COMPRESSOR_H__ - -#include "../scripting/portable.hpp" - -namespace AsuraEngine -{ - namespace IO - { - - class Compressor ASURA_FINAL - : public AEScripting::Portable - { - public: - - LUAX_DECL_SINGLETON(Compressor); - - private: - - LUAX_DECL_METHOD(_Compress); - LUAX_DECL_METHOD(_Decompress); - - - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/data_buffer.cpp b/source/libs/asura-lib-utils/io/data_buffer.cpp deleted file mode 100644 index 5049b38..0000000 --- a/source/libs/asura-lib-utils/io/data_buffer.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include -#include -#include "data_buffer.h" - -using namespace AEThreading; - -namespace AsuraEngine -{ - namespace IO - { - - DataBuffer::DataBuffer(DataBuffer& src) - { - Load(src); - } - - DataBuffer::DataBuffer(std::size_t size) - : mSize(size) - , mBytes(nullptr) - { - lock(mMutex); - mBytes = new byte[size]; - memset(mBytes, 0, size); - } - - DataBuffer::DataBuffer(const void* data, std::size_t size) - : mSize(size) - , mBytes(nullptr) - { - Load(data, size); - } - - DataBuffer::~DataBuffer() - { - delete[] mBytes; - } - - void DataBuffer::Refactor(size_t size) - { - lock(mMutex); - if (!mBytes || mSize != size) - { - delete[] mBytes; - mBytes = new byte[size]; - mSize = size; - } - memset(mBytes, 0, size * sizeof(byte)); - } - - size_t DataBuffer::Load(DataBuffer& db) - { - return Load(db.GetData(), db.GetSize()); - } - - size_t DataBuffer::Load(const void* data, std::size_t size) - { - lock(mMutex); - size_t len = mSize > size ? size : mSize; - memcpy(mBytes, data, len); - return len; - } - - void DataBuffer::Move(void* bytes, std::size_t size) - { - lock(mMutex); - if (!mBytes) - { - delete[] mBytes; - } - mBytes = (byte*)bytes; - mSize = size; - } - - byte* DataBuffer::GetData() - { - return mBytes; - } - - void DataBuffer::Clear() - { - lock(mMutex); - if (mBytes) - memset(mBytes, 0, mSize); - } - - std::size_t DataBuffer::GetSize() - { - return mSize; - } - - void DataBuffer::Lock() - { - mMutex.Lock(); - } - - void DataBuffer::Unlock() - { - mMutex.Unlock(); - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/data_buffer.h b/source/libs/asura-lib-utils/io/data_buffer.h deleted file mode 100644 index 445bdf4..0000000 --- a/source/libs/asura-lib-utils/io/data_buffer.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef __ASURA_ENGINE_DATABUFFER_H__ -#define __ASURA_ENGINE_DATABUFFER_H__ - -#include - -#include "../scripting/portable.hpp" -#include "../threading/mutex.h" - -namespace AsuraEngine -{ - namespace IO - { - - /// - /// 对内存数据的封装,所有的数据使用Data buffer包装,不直接使用const void*。通过resource manager读取。 - /// - class DataBuffer ASURA_FINAL - : public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(DataBuffer); - - DataBuffer(DataBuffer& src); - DataBuffer(std::size_t size); - DataBuffer(const void* bytes, std::size_t size); - ~DataBuffer(); - - byte* GetData(); - size_t GetSize(); - - void Refactor(size_t size); - size_t Load(DataBuffer& db); - size_t Load(const void* bytes, std::size_t size); - void Move(void* bytes, std::size_t size); - void Clear(); - - void Lock(); - void Unlock(); - - private: - - byte* mBytes; - size_t mSize; - - AEThreading::Mutex mMutex; - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_GetData); - LUAX_DECL_METHOD(_GetSize); - LUAX_DECL_METHOD(_Refactor); - LUAX_DECL_METHOD(_Load); - LUAX_DECL_METHOD(_Clear); - - }; - - } -} - -namespace AEIO = AsuraEngine::IO; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/decoded_data.cpp b/source/libs/asura-lib-utils/io/decoded_data.cpp deleted file mode 100644 index 358a7a5..0000000 --- a/source/libs/asura-lib-utils/io/decoded_data.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "../exceptions/exception.h" - -#include "decoded_data.h" - -namespace AsuraEngine -{ - namespace IO - { - - DecodedData::DecodedData(const DataBuffer& databuffer) - { - Decode(databuffer); - } - - DecodedData::~DecodedData() - { - - } - - } -} diff --git a/source/libs/asura-lib-utils/io/decoded_data.h b/source/libs/asura-lib-utils/io/decoded_data.h deleted file mode 100644 index e201e91..0000000 --- a/source/libs/asura-lib-utils/io/decoded_data.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef __ASURA_ENGINE_DATA_H__ -#define __ASURA_ENGINE_DATA_H__ - -#include - -#include "../scripting/portable.hpp" - -#include "data_buffer.h" - -namespace AsuraEngine -{ - namespace IO - { - - /// - /// 可以在另一个线程构建的data继承此类。如图片数据、音频数据等,可以在另一个线程中解析原文件,生成内部数据格式,如像素 - /// 等。 - /// - ASURA_ABSTRACT class DecodedData - { - public: - - /// - /// 从内存中构建data,可以放在另一个线程里面,从资源管理系统里面加载。 - /// - DecodedData(const DataBuffer& databuffer); - - virtual ~DecodedData(); - - protected: - - /// - /// 解码内存中的数据。 - /// - virtual void Decode(const DataBuffer& buffer) = 0; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/file.cpp b/source/libs/asura-lib-utils/io/file.cpp deleted file mode 100644 index 0ff8c90..0000000 --- a/source/libs/asura-lib-utils/io/file.cpp +++ /dev/null @@ -1,292 +0,0 @@ -#include - -#include - -#include "file.h" - -namespace AsuraEngine -{ - namespace IO - { - - File::File(const std::string& filename) - : mFileName(filename) - , mFileHandle(nullptr) - , mMode(FILE_MODE_CLOSED) - , mBufferMode(BUFFER_MODE_NONE) - , mBufferSize(0) - { - size_t dot = filename.rfind('.'); - if (dot != std::string::npos) - { - mExtension = filename.substr(dot + 1); - mName = filename.substr(0, dot); - } - else - mName = filename; - } - - File::~File() - { - if (mMode != FILE_MODE_CLOSED) - Close(); - } - - bool File::Open(FileMode mode) - { - if (!PHYSFS_isInit()) - throw Exception("Physfs is NOT initialized."); - - if (mode == FILE_MODE_CLOSED) - return false; - - if (mode == FILE_MODE_READ && !PHYSFS_exists(mFileName.c_str())) - throw Exception("Could NOT open file %s. Does not exist.", mFileName.c_str()); - - if (mode == FILE_MODE_APPEND || mode == FILE_MODE_WRITE) - { - if (!PHYSFS_getWriteDir()) - { - throw Exception("Could NOT set write directory."); - } - } - - // 已经在之前打开过,就不再创建新的handle了 - if (mFileHandle != nullptr) - return true; - - PHYSFS_getLastErrorCode(); - - PHYSFS_File* handle = nullptr; - - switch (mode) - { - case FILE_MODE_READ: - handle = PHYSFS_openRead(mFileName.c_str()); - break; - case FILE_MODE_APPEND: - handle = PHYSFS_openAppend(mFileName.c_str()); - break; - case FILE_MODE_WRITE: - handle = PHYSFS_openWrite(mFileName.c_str()); - break; - } - - if (handle == nullptr) - { - const char *err = PHYSFS_getErrorByCode(PHYSFS_getLastErrorCode()); - if (err == nullptr) - err = "unknown error"; - throw Exception("Could not open file %s (%s)", mFileName.c_str(), err); - } - - mFileHandle = handle; - mMode = mode; - - if (mFileHandle && !SetBuffer(mBufferMode,mBufferSize)) - { - mBufferMode = BUFFER_MODE_NONE; - mBufferSize = 0; - } - - return mFileHandle != nullptr; - } - - bool File::Close() - { - if (mFileHandle == nullptr || !PHYSFS_close(mFileHandle)) - return false; - mMode = FILE_MODE_CLOSED; - mFileHandle = nullptr; - return true; - } - - bool File::IsOpen() - { - return mMode != FILE_MODE_CLOSED && mFileHandle != nullptr; - } - - size_t File::GetSize() - { - if (mFileHandle == nullptr) - { - Open(FILE_MODE_READ); - size_t size = PHYSFS_fileLength(mFileHandle); - Close(); - return size; - } - return PHYSFS_fileLength(mFileHandle); - } - - size_t File::Read(ASURA_OUT DataBuffer* dst, size_t length) - { - ASSERT(dst); - - if (dst->GetSize() < length) - throw Exception("Data buffer is too small compares to read length."); - - if (!mFileHandle || mMode != FILE_MODE_READ) - throw Exception("File \"%s\" is not opened for reading", mFileName); - - size_t max = PHYSFS_fileLength(mFileHandle); - length = (length > max) ? max : length; - - if (length < 0) - throw Exception("Invalid read size."); - - dst->Lock(); - size_t size = PHYSFS_readBytes(mFileHandle, dst->GetData(), length); - dst->Unlock(); - return size; - } - - size_t File::ReadAll(ASURA_OUT DataBuffer* dst) - { - ASSERT(dst); - - if (!mFileHandle || mMode != FILE_MODE_READ) - throw Exception("File \"%s\" is not opened for reading", mFileName); - - size_t length = PHYSFS_fileLength(mFileHandle); - - if (dst->GetSize() < length) - throw Exception("Data buffer is too small compares to file length."); - - dst->Lock(); - size_t size = PHYSFS_readBytes(mFileHandle, dst->GetData(), length); - dst->Unlock(); - return size; - } - -#ifdef ASURA_WINDOWS - inline bool test_eof(File *that, PHYSFS_File *) - { - int64 pos = that->Tell(); - int64 size = that->GetSize(); - return pos == -1 || size == -1 || pos >= size; - } -#else - inline bool test_eof(File *, PHYSFS_File *file) - { - return PHYSFS_eof(file); - } -#endif - - bool File::IsEOF() - { - return mFileHandle == nullptr || test_eof(this, mFileHandle); - } - - size_t File::Tell() - { - if (!mFileHandle) - return - 1; - - return PHYSFS_tell(mFileHandle); - } - - bool File::Seek(size_t pos) - { - return mFileHandle != nullptr && PHYSFS_seek(mFileHandle, pos) != 0; - } - - bool File::Write(ASURA_REF DataBuffer* src) - { - if (!mFileHandle || (mMode != FILE_MODE_APPEND && mMode != FILE_MODE_WRITE)) - throw Exception("File is not opened for writing."); - - byte* data = src->GetData(); - int size = src->GetSize(); - - if (size < 0) - throw Exception("Invalid write size."); - - size_t written = PHYSFS_writeBytes(mFileHandle, data, size); - - if (written != src->GetSize()) - return false; - - // 处理行缓冲 - if (mBufferSize == BUFFER_MODE_LINE && mBufferSize > size) - { - if (memchr(data, '\n', size) != nullptr) - Flush(); - } - - return true; - } - - bool File::Flush() - { - if (!mFileHandle || (mMode != FILE_MODE_WRITE && mMode != FILE_MODE_APPEND)) - throw Exception("File is not opened for writing."); - - return PHYSFS_flush(mFileHandle) != 0; - } - - bool File::SetBuffer(BufferMode mode, size_t size) - { - if (size < 0) - return false; - - // If the file isn't open, we'll make sure the buffer values are set in - // File::open. - if (!IsOpen()) - { - mBufferMode = mode; - mBufferSize = size; - return true; - } - - int ret = 1; - - switch (mode) - { - case BUFFER_MODE_NONE: - default: - ret = PHYSFS_setBuffer(mFileHandle, 0); - size = 0; - break; - case BUFFER_MODE_LINE: - case BUFFER_MODE_FULL: - ret = PHYSFS_setBuffer(mFileHandle, size); - break; - } - - if (ret == 0) - return false; - - mBufferMode = mode; - mBufferSize = size; - - return true; - } - - File::BufferMode File::GetBuffer(ASURA_OUT size_t& size) - { - size = mBufferSize; - return mBufferMode; - } - - const std::string& File::GetFileName() - { - return mFileName; - } - - const std::string& File::GetName() - { - return mName; - } - - const std::string& File::GetExtension() - { - return mExtension; - } - - File::FileMode File::GetMode() - { - return mMode; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/file.h b/source/libs/asura-lib-utils/io/file.h deleted file mode 100644 index 56077e0..0000000 --- a/source/libs/asura-lib-utils/io/file.h +++ /dev/null @@ -1,146 +0,0 @@ -#ifndef __ASURA_ENGINE_FILE_H__ -#define __ASURA_ENGINE_FILE_H__ - -#include "physfs/physfs.h" - -#include "../scripting/portable.hpp" -#include "../threading/thread.h" - -#include "file_data.h" - -namespace AsuraEngine -{ - namespace IO - { - - /// - /// 以流的形式打开文件,可以指定读写起点、大小。在期望使用流读取时使用本类,否则使用Filesystem.read()直接读取文件全部 - /// 内容,并返回一个FileData对象。 - /// - class File ASURA_FINAL - : public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(File); - - /// - /// 文件读写模式 - /// - enum FileMode - { - FILE_MODE_CLOSED, - FILE_MODE_READ, - FILE_MODE_WRITE, - FILE_MODE_APPEND, - }; - - /// - /// 文件写入时缓冲区行为 - /// - enum BufferMode - { - BUFFER_MODE_NONE, ///< 不使用缓冲,立即写入文件 - BUFFER_MODE_LINE, ///< 行缓冲,遇到换行符或者达到缓冲区大小时写入文件 - BUFFER_MODE_FULL, ///< 完全缓冲,缓冲区满时写入文件 - }; - - File(const std::string& filename); - ~File(); - - bool Open(FileMode mode); - bool Close(); - bool IsOpen(); - FileMode GetMode(); - size_t GetSize(); - - /// - /// 读取到data buffer里,并返回读入的内容 - /// - size_t Read(ASURA_OUT DataBuffer* dst, size_t length); - size_t ReadAll(ASURA_OUT DataBuffer* dst); - size_t ReadAsync(ASURA_OUT DataBuffer* dst); - - /// - /// 是否读到了文件结尾 - /// - bool IsEOF(); - - /// - /// 将data buffer中的内容写入,并返回是否成功 - /// - bool Write(ASURA_REF DataBuffer* src); - - /// - /// 异步写文件,将写文件task加入thread的队列。 - /// - bool WriteAsync(ASURA_REF DataBuffer* src, AEThreading::Thread* thread); - - /// - /// 如果开启了缓冲,强制清空缓冲区,写入文件。 - /// - bool Flush(); - - /// - /// 返回当前读写位置 - /// - size_t Tell(); - - /// - /// 跳到对应位置 - /// - bool Seek(size_t pos); - - /// - /// 设置缓冲区大小和模式 - /// - bool SetBuffer(BufferMode mode, size_t size); - - /// - /// 获取缓冲区大小和模式 - /// - BufferMode GetBuffer(ASURA_OUT size_t& size); - - const std::string& GetFileName(); - const std::string& GetName(); - const std::string& GetExtension(); - - private: - - PHYSFS_File* mFileHandle; ///< physfs 文件 - std::string mFileName; ///< 文件名 - std::string mExtension; ///< 不包含点的扩展名 - std::string mName; ///< 不包含点和扩展名的文件名 - FileMode mMode; ///< 文件打开模式 - BufferMode mBufferMode; ///< 写入缓冲区模式 - size_t mBufferSize; ///< 写入缓冲区大小 - - LUAX_DECL_ENUM(FileMode); - LUAX_DECL_ENUM(BufferMode); - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_Open); - LUAX_DECL_METHOD(_Close); - LUAX_DECL_METHOD(_IsOpen); - LUAX_DECL_METHOD(_GetMode); - LUAX_DECL_METHOD(_GetSize); - LUAX_DECL_METHOD(_Read); - LUAX_DECL_METHOD(_Write); - LUAX_DECL_METHOD(_ReadAsync); - LUAX_DECL_METHOD(_WriteAsync); - LUAX_DECL_METHOD(_IsEOF); - LUAX_DECL_METHOD(_Flush); - LUAX_DECL_METHOD(_Tell); - LUAX_DECL_METHOD(_Seek); - LUAX_DECL_METHOD(_SetBuffer); - LUAX_DECL_METHOD(_GetBuffer); - LUAX_DECL_METHOD(_GetFileName); - LUAX_DECL_METHOD(_GetExtension); - LUAX_DECL_METHOD(_GetName); - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/file_data.cpp b/source/libs/asura-lib-utils/io/file_data.cpp deleted file mode 100644 index 92333cf..0000000 --- a/source/libs/asura-lib-utils/io/file_data.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "file_data.h" - -namespace AsuraEngine -{ - namespace IO - { - - FileData::FileData(const std::string& filename) - : mData(nullptr) - , mFileName(filename) - { - size_t dot = filename.rfind('.'); - if (dot != std::string::npos) - { - mExtension = filename.substr(dot + 1); - mName = filename.substr(0, dot); - } - else - mName = filename; - } - - FileData::~FileData() - { - } - - const std::string& FileData::GetFileName() - { - return mFileName; - } - - const std::string& FileData::GetExtension() - { - return mExtension; - } - - const std::string& FileData::GetName() - { - return mName; - } - - void FileData::BindData(ASURA_MOVE DataBuffer* buffer) - { - mData = buffer; - } - - DataBuffer* FileData::GetDataBuffer() - { - return mData; - } - - } -} diff --git a/source/libs/asura-lib-utils/io/file_data.h b/source/libs/asura-lib-utils/io/file_data.h deleted file mode 100644 index 9aa0e3b..0000000 --- a/source/libs/asura-lib-utils/io/file_data.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef __ASURA_ENGINE_FILE_DATA_H__ -#define __ASURA_ENGINE_FILE_DATA_H__ - -#include - -#include - -#include "data_buffer.h" - -namespace AsuraEngine -{ - namespace IO - { - - class Filesystem; - - /// - /// 当从filesystem直接读取整个文件时,返回FileData对象描述文件内容和其他信息。由Filesystem创建。 - /// - class FileData ASURA_FINAL - : public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(FileData); - - ~FileData(); - - /// - /// 返回文件内容,可以通过Databuffer获得内容和大小。由于内部接口都是以Data buffer作为参数,所以这里也返回data buffer。 - /// - DataBuffer* GetDataBuffer(); - - const std::string& GetFileName(); - const std::string& GetExtension(); - const std::string& GetName(); - - private: - - friend class Filesystem; - - FileData(const std::string& name); - - /// - /// 绑定data buffer。 - /// - void BindData(ASURA_MOVE DataBuffer* buffer); - - /// - /// Data buffer不会再filedata析构时销毁,当lua引用计数为0时由lua调用GC销毁。创建mData时会添加一个成员引用。 - /// - ASURA_REF DataBuffer* mData; - Luax::LuaxMemberRef mDataRef; - - std::string mFileName; ///< 包含扩展名的文件名 - std::string mExtension; ///< 不包含点的扩展名 - std::string mName; ///< 不包含点和后缀的文件名 - - LUAX_DECL_METHOD(_GetDataBuffer); - LUAX_DECL_METHOD(_GetFileName); - LUAX_DECL_METHOD(_GetExtension); - LUAX_DECL_METHOD(_GetName); - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/file_system.cpp b/source/libs/asura-lib-utils/io/file_system.cpp deleted file mode 100644 index 20f3cb2..0000000 --- a/source/libs/asura-lib-utils/io/file_system.cpp +++ /dev/null @@ -1,198 +0,0 @@ -#include - -#include "../exceptions/exception.h" - -#include "file.h" -#include "file_data.h" -#include "file_system.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace IO - { - -#ifdef ASURA_WINDOWS - #include - #include -#else - #include - #include -#endif - - Filesystem::~Filesystem() - { - if (mInited) //PHYSFS_isInit - PHYSFS_deinit(); - } - - void Filesystem::Init(const char* arg0) - { - if (!PHYSFS_init(arg0)) - throw Exception("Failed to initialize filesystem: %s", PHYSFS_getErrorByCode(PHYSFS_getLastErrorCode())); - - mInited = true; - } - - bool Filesystem::Mount(const std::string& locpath, const std::string& montpoint/* = "/"*/, bool prepend /*= false*/) - { - if (!mInited) - return false; - - return PHYSFS_mount(locpath.c_str(), montpoint.c_str(), !prepend); - } - - bool Filesystem::Mount(DataBuffer* db, const std::string& archivename, const std::string& mountpoint /*= "/"*/, bool prepend /*= false*/) - { - if (!mInited) - return false; - if (PHYSFS_mountMemory(db->GetData(), db->GetSize(), nullptr, archivename.c_str(), mountpoint.c_str(), !prepend)) - { - mMountData[archivename] = db; - return true; - } - return false; - } - - bool Filesystem::Unmount(const std::string& locpath) - { - if (!mInited) - return false; - - // 如果是归档,从映射中删除它 - auto datait = mMountData.find(locpath); - if (datait != mMountData.end() && PHYSFS_unmount(locpath.c_str()) != 0) - { - mMountData.erase(datait); - return true; - } - - return PHYSFS_unmount(locpath.c_str()); - } - - bool Filesystem::Unmount(DataBuffer* db) - { - for (const auto& dp : mMountData) - { - if (dp.second == db) - { - std::string archive = dp.first; - return Unmount(archive); - } - } - } - - bool Filesystem::GetMountPoint(const std::string& locpath, ASURA_OUT std::string& mountpoint) - { - if (!mInited) - return false; - const char* point = PHYSFS_getMountPoint(locpath.c_str()); - if (point != nullptr) - { - mountpoint = point; - return true; - } - return false; - } - - void Filesystem::SetWriteDirectory(const std::string locpath) - { - if (!mInited) - return; - if (!PHYSFS_setWriteDir(locpath.c_str())) - throw Exception("Failed to set write directory %s", locpath.c_str()); - } - - std::string Filesystem::GetWriteDirectory() - { - return PHYSFS_getWriteDir(); - } - - File* Filesystem::NewFile(const std::string& name) - { - return new File(name); - } - - bool Filesystem::NewDirectory(const std::string& path) - { - if (!mInited) - return false; - if (!PHYSFS_getWriteDir()) - return false; - if (!PHYSFS_mkdir(path.c_str())) - return false; - return true; - } - - bool Filesystem::Write(const std::string& name, ASURA_REF DataBuffer* buffer) - { - File file(name); - file.Open(File::FILE_MODE_WRITE); - if (!file.Write(buffer)) - throw Exception("Data could not be written."); - } - - bool Filesystem::Append(const std::string& name, ASURA_REF DataBuffer* buffer) - { - File file(name); - file.Open(File::FILE_MODE_APPEND); - if (!file.Write(buffer)) - throw Exception("Data could not be append."); - } - - FileData* Filesystem::Read(const std::string& name) - { - File file = File(name); - file.Open(File::FILE_MODE_READ); - int size = file.GetSize(); - DataBuffer* db = new DataBuffer(size); - if (db) - { - file.ReadAll(db); - FileData* fd = new FileData(name); - fd->BindData(db); - return fd; - } - return nullptr; - } - - bool Filesystem::Remove(const std::string& path) - { - if (!mInited) - return false; - if (PHYSFS_getWriteDir() == 0) - return false; - - if (!PHYSFS_delete(path.c_str())) - return false; - - return true; - } - - bool Filesystem::GetFileInfo(const std::string& filepath, ASURA_OUT FileInfo* info) - { - if (!mInited) - return false; - - PHYSFS_Stat stat = {}; - if (!PHYSFS_stat(filepath.c_str(), &stat)) - return false; - - info->size = (int64)stat.filesize; - info->modtime = (int64)stat.modtime; - - if (stat.filetype == PHYSFS_FILETYPE_REGULAR) - info->type = FILE_TYPE_FILE; - else if (stat.filetype == PHYSFS_FILETYPE_DIRECTORY) - info->type = FILE_TYPE_DIRECTORY; - else if (stat.filetype == PHYSFS_FILETYPE_SYMLINK) - info->type = FILE_TYPE_SYMLINK; - else - info->type = FILE_TYPE_OTHER; - - return true; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/file_system.h b/source/libs/asura-lib-utils/io/file_system.h deleted file mode 100644 index 849cbb6..0000000 --- a/source/libs/asura-lib-utils/io/file_system.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef __ASURA_ENGINE_FILESYSTEM_H__ -#define __ASURA_ENGINE_FILESYSTEM_H__ - -#include -#include - -#include "../scripting/portable.hpp" -#include "../singleton.hpp" -#include "../type.h" - -#include "file_data.h" -#include "file.h" - -namespace AsuraEngine -{ - namespace IO - { - - enum FileType - { - FILE_TYPE_FILE, ///< 文件 - FILE_TYPE_DIRECTORY, ///< 文件夹 - FILE_TYPE_SYMLINK, ///< 链接 - FILE_TYPE_OTHER, ///< 其他 - }; - - struct FileInfo - { - int64 size; - int64 modtime; - FileType type; - }; - - /// - /// 资源管理,负责加载、存储资源,指定根目录等。无论编辑器还是运行时,都需要限制访问的机制,将用户的操作限制在游戏目录 - /// 下,file system就是做这件事的。Filesystem是运行时和编辑器共用的类,AssetDatabase是用来管理资源的类,在framework - /// 里实现,单纯是逻辑处理,读写还是用Filesystem实现,AssetDatabase提供根据文件内容创建对应资源的方法。 - /// - class Filesystem ASURA_FINAL - : public Singleton - , public AEScripting::Portable - { - public: - - LUAX_DECL_SINGLETON(Filesystem); - - ~Filesystem(); - - void Init(const char* arg0); - - /// - /// 当前可执行文件的所在文件夹 - /// - std::string GetWorkingDirectory(); - - bool Mount(const std::string& locpath, const std::string& montpoint = "/", bool prepend = false); - bool Mount(DataBuffer* db, const std::string& archivename, const std::string& mountpoint = "/", bool prepend = false); - - bool Unmount(const std::string& locpath); - bool Unmount(DataBuffer* db); - - bool GetMountPoint(const std::string& locpath, ASURA_OUT std::string& mountpoint); - - void SetWriteDirectory(const std::string locpath); - std::string GetWriteDirectory(); - File* NewFile(const std::string& name); - bool NewDirectory(const std::string& path); - bool Write(const std::string& path, ASURA_REF DataBuffer* buffer); - bool Append(const std::string& path, ASURA_REF DataBuffer* buffer); - bool Remove(const std::string& path); - - FileData* Read(const std::string& path); - bool GetFileInfo(const std::string& path, ASURA_OUT FileInfo* info); - - bool GetDirectoryItems(const std::string& path, ASURA_OUT std::vector& items) { return false; }; - - private: - - typedef std::map MountDataMap; - - bool mInited; ///< 是否初始化成功 - std::string mCwd; ///< 当前执行文件的工作目录 - MountDataMap mMountData; ///< 从路径到压缩文档的映射 - - LUAX_DECL_METHOD(_Init); - LUAX_DECL_METHOD(_Mount); - LUAX_DECL_METHOD(_Unmount); - LUAX_DECL_METHOD(_GetMountPoint); - - LUAX_DECL_METHOD(_SetWriteDirectory); - LUAX_DECL_METHOD(_GetWriteDirectory); - LUAX_DECL_METHOD(_CreateFile); - LUAX_DECL_METHOD(_CreateDirectory); - - LUAX_DECL_METHOD(_Write); - LUAX_DECL_METHOD(_Append); - LUAX_DECL_METHOD(_Remove); - - LUAX_DECL_METHOD(_Read); - - LUAX_DECL_METHOD(_GetFileInfo); - - LUAX_DECL_METHOD(_GetDirectoryItems); - - }; - - } -} - -namespace AEIO = AsuraEngine::IO; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/io_batch_task.cpp b/source/libs/asura-lib-utils/io/io_batch_task.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/io/io_batch_task.h b/source/libs/asura-lib-utils/io/io_batch_task.h deleted file mode 100644 index c0be921..0000000 --- a/source/libs/asura-lib-utils/io/io_batch_task.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef __ASURA_IO_BATCH_TASK_H__ -#define __ASURA_IO_BATCH_TASK_H__ - -#include "io_task.h" - -namespace AsuraEngine -{ - namespace IO - { - - /// - /// 批量处理读或者写。一次性提交一个table,依次处理后返回结果。 - /// - class IOBatchTask ASURA_FINAL : public AEThreading::Task - { - public: - - private: - - /// - /// 任务表,每一条的结构如下: - /// { path = "", } - /// - Luax::LuaxMemberRef mTasks; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/io_task.cpp b/source/libs/asura-lib-utils/io/io_task.cpp deleted file mode 100644 index 361b9c5..0000000 --- a/source/libs/asura-lib-utils/io/io_task.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include "file_system.h" -#include "io_task.h" - -#include - -using namespace AEScripting; -using namespace Luax; - -namespace AsuraEngine -{ - namespace IO - { - - IOTask::IOTask(const std::string& path, DataBuffer* buffer, IOTaskType type) - : mPath(path) - , mBuffer(buffer) - { - } - - IOTask::~IOTask() - { - } - - bool IOTask::Execute() - { - File file(mPath); - if (mType == IOTASK_TYPE_WRITE) - { - - } - // 从path读取内容保存在mBuffer中 - else if (mType == IOTASK_TYPE_READ) - { - file.Open(File::FILE_MODE_READ); - file.ReadAll(mBuffer); - file.Close(); - } - return true; - } - - void IOTask::Invoke(lua_State* invokeThreaad) - { - if (mCallback) - { - LuaxScopedState state(invokeThreaad); - if (PushLuaxMemberRef(state, mCallback)) - { - PushLuaxMemberRef(state, mBufferRef); - state.Call(1, 0); - } - } - } - - } -} diff --git a/source/libs/asura-lib-utils/io/io_task.h b/source/libs/asura-lib-utils/io/io_task.h deleted file mode 100644 index 8f04142..0000000 --- a/source/libs/asura-lib-utils/io/io_task.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef __ASURA_IO_TASK_H__ -#define __ASURA_IO_TASK_H__ - -#include - -#include "../scripting/portable.hpp" -#include "../threading/task.h" - -#include "data_buffer.h" - -namespace AsuraEngine -{ - namespace IO - { - - enum IOTaskType - { - IOTASK_TYPE_READ, - IOTASK_TYPE_WRITE, - IOTASK_TYPE_APPEND, - }; - - /// - /// 读取文件任务。 - /// - class IOTask ASURA_FINAL - : public AEThreading::Task - , public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(IOTask); - - IOTask(const std::string& path, DataBuffer* buffer, IOTaskType type); - ~IOTask(); - - bool Execute() override ; - void Invoke(lua_State* invokeThreaad) override; - - private: - - LUAX_DECL_ENUM(IOTaskType); - - LUAX_DECL_METHOD(_New); - - std::string mPath; - IOTaskType mType; - - ASURA_REF DataBuffer* mBuffer; - Luax::LuaxMemberRef mBufferRef; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/reloadable.h b/source/libs/asura-lib-utils/io/reloadable.h deleted file mode 100644 index 22a721c..0000000 --- a/source/libs/asura-lib-utils/io/reloadable.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __ASURA_ENGINE_RELOADABLE_H__ -#define __ASURA_ENGINE_RELOADABLE_H__ - -#include "../scripting/portable.hpp" - -namespace AsuraEngine -{ - namespace IO - { - - /// - /// 可以重新构建的数据结构。比如图片、音频这种,从外部数据可以直接构建,可以在编辑器内重新构建,适用于不改变handle的资源。 - /// - ASURA_ABSTRACT class Reloadable - { - public: - Reloadable(); - virtual ~Reloadable(); - - // 继承Reloadable的需要提供一个load方法 - - }; - - } -} - -namespace AEIO = AsuraEngine::IO; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/manager.hpp b/source/libs/asura-lib-utils/manager.hpp deleted file mode 100644 index 7b4e272..0000000 --- a/source/libs/asura-lib-utils/manager.hpp +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __ASURA_ENGINE_MANAGER_H__ -#define __ASURA_ENGINE_MANAGER_H__ - -namespace AsuraEngine -{ - - class Manager - { - - }; - -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/math/curve.cpp b/source/libs/asura-lib-utils/math/curve.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/math/curve.h b/source/libs/asura-lib-utils/math/curve.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/math/functions.cpp b/source/libs/asura-lib-utils/math/functions.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/math/functions.h b/source/libs/asura-lib-utils/math/functions.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/math/matrix44.cpp b/source/libs/asura-lib-utils/math/matrix44.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/math/matrix44.h b/source/libs/asura-lib-utils/math/matrix44.h deleted file mode 100644 index 4ab3c0b..0000000 --- a/source/libs/asura-lib-utils/math/matrix44.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __ASURA_ENGINE_MATRIX44_H__ -#define __ASURA_ENGINE_MATRIX44_H__ - -namespace AsuraEngine -{ - namespace Math - { - - /// - /// 4x4矩阵 - /// - class Matrix44 - { - public: - - private: - - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/math/quaternion.cpp b/source/libs/asura-lib-utils/math/quaternion.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/math/quaternion.h b/source/libs/asura-lib-utils/math/quaternion.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/math/ranged_value.cpp b/source/libs/asura-lib-utils/math/ranged_value.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/math/ranged_value.h b/source/libs/asura-lib-utils/math/ranged_value.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/math/rect.hpp b/source/libs/asura-lib-utils/math/rect.hpp deleted file mode 100644 index 1751634..0000000 --- a/source/libs/asura-lib-utils/math/rect.hpp +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef __ASURA_ENGINE_RECT_H__ -#define __ASURA_ENGINE_RECT_H__ - -namespace AsuraEngine -{ - namespace Math - { - - template - struct Rect - { - public: - Rect(); - ~Rect(T x, T y, T w, T h); - - /// - /// x,y是否落在rect内。 - /// - bool Contain(T x, T y); - - /// - /// 两个矩形是否相交,并返回相交的矩形 - /// - bool Intersect(const Rect& src, Rect& intersection); - - /// - /// 两个矩形是否相交,并返回相交的矩形 - /// - static bool Intersect(const Rect& src1, const Rect& src2, Rect& intersection); - - T x, y, w, h; - }; - -#include "Rect.inl" - - // Define the most common types - typedef Rect Recti; - typedef Rect Rectu; - typedef Rect Rectf; - typedef Rect Reftl; - - } -} - -namespace AEMath = AsuraEngine::Math; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/math/rect.inl b/source/libs/asura-lib-utils/math/rect.inl deleted file mode 100644 index 891a3f8..0000000 --- a/source/libs/asura-lib-utils/math/rect.inl +++ /dev/null @@ -1,19 +0,0 @@ -template -inline Rect::Rect() - : x(0) - , y(0) - , w(0) - , h(0) -{ - -} - -template -inline Rect::Rect(T X, T Y, T W, T H) - : x(X) - , y(Y) - , w(W) - , h(H) -{ - -} diff --git a/source/libs/asura-lib-utils/math/transform.cpp b/source/libs/asura-lib-utils/math/transform.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/math/transform.h b/source/libs/asura-lib-utils/math/transform.h deleted file mode 100644 index be4c850..0000000 --- a/source/libs/asura-lib-utils/math/transform.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __ASURA_ENGINE_TRANSFORM_H__ -#define __ASURA_ENGINE_TRANSFORM_H__ - -#include "../scripting/portable.hpp" - -namespace AsuraEngine -{ - namespace Math - { - - class Transform - { - public: - - void Set(float x, float y, float sx, float sy, float ox, float oy, float r); - - void LoadIdentity(); - - void Move(float dx = 0, float dy = 0); - void Rotate(float r); - void Scale(float sx, float sy); - - float m[16]; //4x4 matrix - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/math/vector2.hpp b/source/libs/asura-lib-utils/math/vector2.hpp deleted file mode 100644 index df78255..0000000 --- a/source/libs/asura-lib-utils/math/vector2.hpp +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef __ASURA_ENGINE_VECTOR2_H__ -#define __ASURA_ENGINE_VECTOR2_H__ - -namespace AsuraEngine -{ - namespace Math - { - template - class Vector2 - { - public: - Vector2(); - Vector2(T X, T Y); - - template - explicit Vector2(const Vector2& vector); - - Set(T X, T Y); - - T x; ///< X coordinate of the vector - T y; ///< Y coordinate of the vector - }; - - template - Vector2 operator -(const Vector2& right); - - template - Vector2& operator +=(Vector2& left, const Vector2& right); - - template - Vector2& operator -=(Vector2& left, const Vector2& right); - - template - Vector2 operator +(const Vector2& left, const Vector2& right); - - template - Vector2 operator -(const Vector2& left, const Vector2& right); - - template - Vector2 operator *(const Vector2& left, T right); - - template - Vector2 operator *(T left, const Vector2& right); - - template - Vector2& operator *=(Vector2& left, T right); - - template - Vector2 operator /(const Vector2& left, T right); - - template - Vector2& operator /=(Vector2& left, T right); - - template - bool operator ==(const Vector2& left, const Vector2& right); - - template - bool operator !=(const Vector2& left, const Vector2& right); - -#include "Vector2.inl" - - // Define the most common types - typedef Vector2 Vector2i; - typedef Vector2 Vector2u; - typedef Vector2 Vector2f; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/math/vector2.inl b/source/libs/asura-lib-utils/math/vector2.inl deleted file mode 100644 index 9e131a7..0000000 --- a/source/libs/asura-lib-utils/math/vector2.inl +++ /dev/null @@ -1,114 +0,0 @@ -template -inline Vector2::Vector2() : - x(0), - y(0) -{ - -} - -template -inline Vector2::Vector2(T X, T Y) : - x(X), - y(Y) -{ - -} - -template -template -inline Vector2::Vector2(const Vector2& vector) : - x(static_cast(vector.x)), - y(static_cast(vector.y)) -{ -} - -template -inline Vector2::Set(T X, T Y) -{ - x = X; - y = Y; -} - -template -inline Vector2 operator -(const Vector2& right) -{ - return Vector2(-right.x, -right.y); -} - -template -inline Vector2& operator +=(Vector2& left, const Vector2& right) -{ - left.x += right.x; - left.y += right.y; - - return left; -} - -template -inline Vector2& operator -=(Vector2& left, const Vector2& right) -{ - left.x -= right.x; - left.y -= right.y; - - return left; -} - -template -inline Vector2 operator +(const Vector2& left, const Vector2& right) -{ - return Vector2(left.x + right.x, left.y + right.y); -} - -template -inline Vector2 operator -(const Vector2& left, const Vector2& right) -{ - return Vector2(left.x - right.x, left.y - right.y); -} - -template -inline Vector2 operator *(const Vector2& left, T right) -{ - return Vector2(left.x * right, left.y * right); -} - -template -inline Vector2 operator *(T left, const Vector2& right) -{ - return Vector2(right.x * left, right.y * left); -} - -template -inline Vector2& operator *=(Vector2& left, T right) -{ - left.x *= right; - left.y *= right; - - return left; -} - -template -inline Vector2 operator /(const Vector2& left, T right) -{ - return Vector2(left.x / right, left.y / right); -} - -template -inline Vector2& operator /=(Vector2& left, T right) -{ - left.x /= right; - left.y /= right; - - return left; -} - -template -inline bool operator ==(const Vector2& left, const Vector2& right) -{ - return (left.x == right.x) && (left.y == right.y); -} - -template -inline bool operator !=(const Vector2& left, const Vector2& right) -{ - return (left.x != right.x) || (left.y != right.y); -} diff --git a/source/libs/asura-lib-utils/math/vector3.hpp b/source/libs/asura-lib-utils/math/vector3.hpp deleted file mode 100644 index 2b23406..0000000 --- a/source/libs/asura-lib-utils/math/vector3.hpp +++ /dev/null @@ -1,233 +0,0 @@ -#ifndef __ASURA_ENGINE_VECTOR3_H__ -#define __ASURA_ENGINE_VECTOR3_H__ - -namespace AsuraEngine -{ - namespace Math - { - template - class Vector3 - { - public: - - //////////////////////////////////////////////////////////// - /// \brief Default constructor - /// - /// Creates a Vector3(0, 0, 0). - /// - //////////////////////////////////////////////////////////// - Vector3(); - - //////////////////////////////////////////////////////////// - /// \brief Construct the vector from its coordinates - /// - /// \param X X coordinate - /// \param Y Y coordinate - /// \param Z Z coordinate - /// - //////////////////////////////////////////////////////////// - Vector3(T X, T Y, T Z); - - //////////////////////////////////////////////////////////// - /// \brief Construct the vector from another type of vector - /// - /// This constructor doesn't replace the copy constructor, - /// it's called only when U != T. - /// A call to this constructor will fail to compile if U - /// is not convertible to T. - /// - /// \param vector Vector to convert - /// - //////////////////////////////////////////////////////////// - template - explicit Vector3(const Vector3& vector); - - //////////////////////////////////////////////////////////// - // Member data - //////////////////////////////////////////////////////////// - T x; ///< X coordinate of the vector - T y; ///< Y coordinate of the vector - T z; ///< Z coordinate of the vector - }; - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of unary operator - - /// - /// \param left Vector to negate - /// - /// \return Memberwise opposite of the vector - /// - //////////////////////////////////////////////////////////// - template - Vector3 operator -(const Vector3& left); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator += - /// - /// This operator performs a memberwise addition of both vectors, - /// and assigns the result to \a left. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return Reference to \a left - /// - //////////////////////////////////////////////////////////// - template - Vector3& operator +=(Vector3& left, const Vector3& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator -= - /// - /// This operator performs a memberwise subtraction of both vectors, - /// and assigns the result to \a left. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return Reference to \a left - /// - //////////////////////////////////////////////////////////// - template - Vector3& operator -=(Vector3& left, const Vector3& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator + - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return Memberwise addition of both vectors - /// - //////////////////////////////////////////////////////////// - template - Vector3 operator +(const Vector3& left, const Vector3& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator - - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return Memberwise subtraction of both vectors - /// - //////////////////////////////////////////////////////////// - template - Vector3 operator -(const Vector3& left, const Vector3& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator * - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a scalar value) - /// - /// \return Memberwise multiplication by \a right - /// - //////////////////////////////////////////////////////////// - template - Vector3 operator *(const Vector3& left, T right); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator * - /// - /// \param left Left operand (a scalar value) - /// \param right Right operand (a vector) - /// - /// \return Memberwise multiplication by \a left - /// - //////////////////////////////////////////////////////////// - template - Vector3 operator *(T left, const Vector3& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator *= - /// - /// This operator performs a memberwise multiplication by \a right, - /// and assigns the result to \a left. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a scalar value) - /// - /// \return Reference to \a left - /// - //////////////////////////////////////////////////////////// - template - Vector3& operator *=(Vector3& left, T right); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator / - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a scalar value) - /// - /// \return Memberwise division by \a right - /// - //////////////////////////////////////////////////////////// - template - Vector3 operator /(const Vector3& left, T right); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator /= - /// - /// This operator performs a memberwise division by \a right, - /// and assigns the result to \a left. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a scalar value) - /// - /// \return Reference to \a left - /// - //////////////////////////////////////////////////////////// - template - Vector3& operator /=(Vector3& left, T right); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator == - /// - /// This operator compares strict equality between two vectors. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return True if \a left is equal to \a right - /// - //////////////////////////////////////////////////////////// - template - bool operator ==(const Vector3& left, const Vector3& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector3 - /// \brief Overload of binary operator != - /// - /// This operator compares strict difference between two vectors. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return True if \a left is not equal to \a right - /// - //////////////////////////////////////////////////////////// - template - bool operator !=(const Vector3& left, const Vector3& right); - -#include "Vector3.inl" - - // Define the most common types - typedef Vector3 Vector3i; - typedef Vector3 Vector3f; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/math/vector3.inl b/source/libs/asura-lib-utils/math/vector3.inl deleted file mode 100644 index 3a2aa93..0000000 --- a/source/libs/asura-lib-utils/math/vector3.inl +++ /dev/null @@ -1,145 +0,0 @@ - - -//////////////////////////////////////////////////////////// -template -inline Vector3::Vector3() : - x(0), - y(0), - z(0) -{ - -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3::Vector3(T X, T Y, T Z) : - x(X), - y(Y), - z(Z) -{ - -} - - -//////////////////////////////////////////////////////////// -template -template -inline Vector3::Vector3(const Vector3& vector) : - x(static_cast(vector.x)), - y(static_cast(vector.y)), - z(static_cast(vector.z)) -{ -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3 operator -(const Vector3& left) -{ - return Vector3(-left.x, -left.y, -left.z); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3& operator +=(Vector3& left, const Vector3& right) -{ - left.x += right.x; - left.y += right.y; - left.z += right.z; - - return left; -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3& operator -=(Vector3& left, const Vector3& right) -{ - left.x -= right.x; - left.y -= right.y; - left.z -= right.z; - - return left; -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3 operator +(const Vector3& left, const Vector3& right) -{ - return Vector3(left.x + right.x, left.y + right.y, left.z + right.z); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3 operator -(const Vector3& left, const Vector3& right) -{ - return Vector3(left.x - right.x, left.y - right.y, left.z - right.z); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3 operator *(const Vector3& left, T right) -{ - return Vector3(left.x * right, left.y * right, left.z * right); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3 operator *(T left, const Vector3& right) -{ - return Vector3(right.x * left, right.y * left, right.z * left); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3& operator *=(Vector3& left, T right) -{ - left.x *= right; - left.y *= right; - left.z *= right; - - return left; -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3 operator /(const Vector3& left, T right) -{ - return Vector3(left.x / right, left.y / right, left.z / right); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector3& operator /=(Vector3& left, T right) -{ - left.x /= right; - left.y /= right; - left.z /= right; - - return left; -} - - -//////////////////////////////////////////////////////////// -template -inline bool operator ==(const Vector3& left, const Vector3& right) -{ - return (left.x == right.x) && (left.y == right.y) && (left.z == right.z); -} - - -//////////////////////////////////////////////////////////// -template -inline bool operator !=(const Vector3& left, const Vector3& right) -{ - return (left.x != right.x) || (left.y != right.y) || (left.z != right.z); -} diff --git a/source/libs/asura-lib-utils/math/vector4.h b/source/libs/asura-lib-utils/math/vector4.h deleted file mode 100644 index 13a9d8a..0000000 --- a/source/libs/asura-lib-utils/math/vector4.h +++ /dev/null @@ -1,234 +0,0 @@ -#ifndef __ASURA_ENGINE_VECTOR4_H__ -#define __ASURA_ENGINE_VECTOR4_H__ - -namespace AsuraEngine -{ - namespace Math - { - template - class Vector4 - { - public: - - //////////////////////////////////////////////////////////// - /// \brief Default constructor - /// - /// Creates a Vector4(0, 0, 0). - /// - //////////////////////////////////////////////////////////// - Vector4(); - - //////////////////////////////////////////////////////////// - /// \brief Construct the vector from its coordinates - /// - /// \param X X coordinate - /// \param Y Y coordinate - /// \param Z Z coordinate - /// - //////////////////////////////////////////////////////////// - Vector4(T X, T Y, T Z, T W); - - //////////////////////////////////////////////////////////// - /// \brief Construct the vector from another type of vector - /// - /// This constructor doesn't replace the copy constructor, - /// it's called only when U != T. - /// A call to this constructor will fail to compile if U - /// is not convertible to T. - /// - /// \param vector Vector to convert - /// - //////////////////////////////////////////////////////////// - template - explicit Vector4(const Vector4& vector); - - //////////////////////////////////////////////////////////// - // Member data - //////////////////////////////////////////////////////////// - T x; ///< X coordinate of the vector - T y; ///< Y coordinate of the vector - T z; ///< Z coordinate of the vector - T w; ///< W coordinate of the vector - }; - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of unary operator - - /// - /// \param left Vector to negate - /// - /// \return Memberwise opposite of the vector - /// - //////////////////////////////////////////////////////////// - template - Vector4 operator -(const Vector4& left); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator += - /// - /// This operator performs a memberwise addition of both vectors, - /// and assigns the result to \a left. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return Reference to \a left - /// - //////////////////////////////////////////////////////////// - template - Vector4& operator +=(Vector4& left, const Vector4& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator -= - /// - /// This operator performs a memberwise subtraction of both vectors, - /// and assigns the result to \a left. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return Reference to \a left - /// - //////////////////////////////////////////////////////////// - template - Vector4& operator -=(Vector4& left, const Vector4& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator + - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return Memberwise addition of both vectors - /// - //////////////////////////////////////////////////////////// - template - Vector4 operator +(const Vector4& left, const Vector4& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator - - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return Memberwise subtraction of both vectors - /// - //////////////////////////////////////////////////////////// - template - Vector4 operator -(const Vector4& left, const Vector4& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator * - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a scalar value) - /// - /// \return Memberwise multiplication by \a right - /// - //////////////////////////////////////////////////////////// - template - Vector4 operator *(const Vector4& left, T right); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator * - /// - /// \param left Left operand (a scalar value) - /// \param right Right operand (a vector) - /// - /// \return Memberwise multiplication by \a left - /// - //////////////////////////////////////////////////////////// - template - Vector4 operator *(T left, const Vector4& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator *= - /// - /// This operator performs a memberwise multiplication by \a right, - /// and assigns the result to \a left. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a scalar value) - /// - /// \return Reference to \a left - /// - //////////////////////////////////////////////////////////// - template - Vector4& operator *=(Vector4& left, T right); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator / - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a scalar value) - /// - /// \return Memberwise division by \a right - /// - //////////////////////////////////////////////////////////// - template - Vector4 operator /(const Vector4& left, T right); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator /= - /// - /// This operator performs a memberwise division by \a right, - /// and assigns the result to \a left. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a scalar value) - /// - /// \return Reference to \a left - /// - //////////////////////////////////////////////////////////// - template - Vector4& operator /=(Vector4& left, T right); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator == - /// - /// This operator compares strict equality between two vectors. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return True if \a left is equal to \a right - /// - //////////////////////////////////////////////////////////// - template - bool operator ==(const Vector4& left, const Vector4& right); - - //////////////////////////////////////////////////////////// - /// \relates Vector4 - /// \brief Overload of binary operator != - /// - /// This operator compares strict difference between two vectors. - /// - /// \param left Left operand (a vector) - /// \param right Right operand (a vector) - /// - /// \return True if \a left is not equal to \a right - /// - //////////////////////////////////////////////////////////// - template - bool operator !=(const Vector4& left, const Vector4& right); - -#include "Vector4.inl" - - // Define the most common types - typedef Vector4 Vector4i; - typedef Vector4 Vector4f; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/math/vector4.inl b/source/libs/asura-lib-utils/math/vector4.inl deleted file mode 100644 index 025bfcc..0000000 --- a/source/libs/asura-lib-utils/math/vector4.inl +++ /dev/null @@ -1,152 +0,0 @@ - - -//////////////////////////////////////////////////////////// -template -inline Vector4::Vector4() : - x(0), - y(0), - z(0), - w(0) -{ - -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4::Vector4(T X, T Y, T Z) : - x(X), - y(Y), - z(Z), - w(0) -{ - -} - - -//////////////////////////////////////////////////////////// -template -template -inline Vector4::Vector4(const Vector4& vector) : - x(static_cast(vector.x)), - y(static_cast(vector.y)), - z(static_cast(vector.z)) - w(static_cast(vector.w)) -{ -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4 operator -(const Vector4& left) -{ - return Vector4(-left.x, -left.y, -left.z, -left.w); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4& operator +=(Vector4& left, const Vector4& right) -{ - left.x += right.x; - left.y += right.y; - left.z += right.z; - left.w += right.w; - - return left; -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4& operator -=(Vector4& left, const Vector4& right) -{ - left.x -= right.x; - left.y -= right.y; - left.z -= right.z; - left.w -= right.w; - - return left; -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4 operator +(const Vector4& left, const Vector4& right) -{ - return Vector4(left.x + right.x, left.y + right.y, left.z + right.z, left.w + right.w); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4 operator -(const Vector4& left, const Vector4& right) -{ - return Vector4(left.x - right.x, left.y - right.y, left.z - right.z, left.w - right.w); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4 operator *(const Vector4& left, T right) -{ - return Vector4(left.x * right, left.y * right, left.z * right, left.w * right); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4 operator *(T left, const Vector4& right) -{ - return Vector4(right.x * left, right.y * left, right.z * left, right.w * left); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4& operator *=(Vector4& left, T right) -{ - left.x *= right; - left.y *= right; - left.z *= right; - left.w *= right; - - return left; -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4 operator /(const Vector4& left, T right) -{ - return Vector4(left.x / right, left.y / right, left.z / right, left.w / right); -} - - -//////////////////////////////////////////////////////////// -template -inline Vector4& operator /=(Vector4& left, T right) -{ - left.x /= right; - left.y /= right; - left.z /= right; - left.w /= right; - - return left; -} - - -//////////////////////////////////////////////////////////// -template -inline bool operator ==(const Vector4& left, const Vector4& right) -{ - return (left.x == right.x) && (left.y == right.y) && (left.z == right.z) && (left.w == right.w); -} - - -//////////////////////////////////////////////////////////// -template -inline bool operator !=(const Vector4& left, const Vector4& right) -{ - return (left.x != right.x) || (left.y != right.y) || (left.z != right.z) || (left.w != right.w); -} diff --git a/source/libs/asura-lib-utils/module.h b/source/libs/asura-lib-utils/module.h deleted file mode 100644 index b22c68c..0000000 --- a/source/libs/asura-lib-utils/module.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __ASURA_MODULE_H__ -#define __ASURA_MODULE_H__ - -#include "type.h" -#include "scripting/portable.hpp" - -namespace AsuraEngine -{ - - /// - /// Asura libs 需要继承此类,以开启注册。在模块队列中按顺序添加这些模块,然后顺序调用Initialize和Finalize方法来初始化和 - /// 关闭这些模块。 - /// - ASURA_ABSTRACT class Module - { - public: - - /// - /// 初始化模块。 - /// - virtual void Initialize(Luax::LuaxState& state) = 0; - - /// - /// 关闭模块。 - /// - virtual void Finalize(Luax::LuaxState& state) = 0; - - }; - -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/scripting/lua_env.h b/source/libs/asura-lib-utils/scripting/lua_env.h deleted file mode 100644 index e2fc4fc..0000000 --- a/source/libs/asura-lib-utils/scripting/lua_env.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef __ASURA_LUA_ENV_H__ -#define __ASURA_LUA_ENV_H__ - -extern "C" -{ -#include -#include -} -#include - -#include "../singleton.hpp" - -namespace AsuraEngine -{ - namespace Scripting - { - - /// - /// 程序通过这个接口访问主lua state。Asura程序的思想是,进程主线程维护一个lua虚拟机,应用 - /// 的主要逻辑跑在此虚拟机的主lua线程里(或者叫主栈里)。 - /// - class LuaEnv ASURA_FINAL : public Singleton - { - public: - - LuaEnv() : mVM(0) {}; - ~LuaEnv() {}; - - /// - /// 设置主虚拟机的主执行栈。 - /// - inline void Init() - { - ASSERT(!mVM); - mVM = new Luax::LuaxVM(); - ASSERT(mVM); - mVM->Setup(); - }; - - inline lua_State* GetMainThread() - { - return mVM->GetMainThread(); - }; - - inline void Exit() - { - delete mVM; - mVM = nullptr; - } - - private: - - /// - /// 主线程保存一个主lua虚拟机。一个Asura程序永远只有一个主虚拟机,大部分代码都在这个虚 - /// 拟机中运行,且只能设置一次。主线程\主执行栈对应的是global_State里面的: - /// - /// struct lua_State *mainthread; - /// - /// 使用lua_newstate(),会创建一个虚拟机,包含一个global_State结构,并创建一个这个虚 - /// 拟机的主线程lua_State并返回。global_State由这个虚拟机的所有线程共享,除了第一个主 - /// 线程由lua_newstate()创建外,其余线程由lua_newthread()创建。 - /// - Luax::LuaxVM* mVM; - - }; - - } -} - -namespace AEScripting = AsuraEngine::Scripting; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/scripting/portable.hpp b/source/libs/asura-lib-utils/scripting/portable.hpp deleted file mode 100644 index 5badf8d..0000000 --- a/source/libs/asura-lib-utils/scripting/portable.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __ASURA_ENGINE_PORTABLE_H__ -#define __ASURA_ENGINE_PORTABLE_H__ - -#include "../type.h" - -#include "lua_env.h" - -namespace AsuraEngine -{ - namespace Scripting - { - - /// - /// 要注册给lua的native类需要继承此模板。 - /// - template - using Portable = Luax::LuaxNativeClass; - - /// - /// 需要作为基类,访问userdata和member ref的类继承此类,注意必须是虚继承。 - /// - using NativeAccessor = Luax::ILuaxNativeAccessor; - - } -} - -namespace AEScripting = AsuraEngine::Scripting; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/singleton.hpp b/source/libs/asura-lib-utils/singleton.hpp deleted file mode 100644 index 0d2777e..0000000 --- a/source/libs/asura-lib-utils/singleton.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef __ASURA_SINGLETON_H__ -#define __ASURA_SINGLETON_H__ - -#include "utils_config.h" - -namespace AsuraEngine -{ - - /// - /// 继承Singleton的类在第一次实例化时保存实例,之后如果再次实例化会报错。 - /// - template - class Singleton - { - public: - - static T* Get() - { - // 如果之前没有创建,在这里立即创建一个并保存 - if (!instance) instance = new T; - // 返回实例 - return instance; - } - - static void Destroy() - { - delete instance; - instance = nullptr; - } - - protected: - - Singleton() - { - // 如果有instance,意味着又创建了一个实例,这是错误的。 - ASSERT(!instance); - // 否则,将本实体作为实例 - instance = static_cast(this); - }; - - virtual ~Singleton() {}; - - static T* instance; - - private: - - Singleton(const Singleton& singleton); - - Singleton& operator = (const Singleton& singleton); - - }; - - // 实例初始化为空 - template - T* Singleton::instance = nullptr; - -} - -#endif // __ASURA_SINGLETON_H__ \ No newline at end of file diff --git a/source/libs/asura-lib-utils/stringmap.cpp b/source/libs/asura-lib-utils/stringmap.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/stringmap.hpp b/source/libs/asura-lib-utils/stringmap.hpp deleted file mode 100644 index ddba128..0000000 --- a/source/libs/asura-lib-utils/stringmap.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __ASURA_ENGINE_STRINGMAP_H__ -#define __ASURA_ENGINE_STRINGMAP_H__ - -#include - -namespace AsuraEngine -{ - - /// - /// 一个双向一一对应的映射,用来储存shader uniforms、statemathine state parameter的ID。 - /// - template - class StringMap - { - public: - - bool ContainsKey(const key_type& key); - - bool ContainsString(const String& str); - - std::string GetStringByKey(const key_type& key); - - key_type GetKeyByString(const String& str); - - }; - -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/binding/_coroutine.cpp b/source/libs/asura-lib-utils/threading/binding/_coroutine.cpp deleted file mode 100644 index 7f74cca..0000000 --- a/source/libs/asura-lib-utils/threading/binding/_coroutine.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "../coroutine.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Threading - { - - LUAX_REGISTRY(Coroutine) - { - LUAX_REGISTER_METHODS(state, - { "New", _New }, - { "Run", _Run } - ); - } - - LUAX_POSTPROCESS(Coroutine) - { - - } - - // Coroutine.New() - LUAX_IMPL_METHOD(Coroutine, _New) - { - LUAX_STATE(L); - - return 0; - } - - // coroutine:Run() - LUAX_IMPL_METHOD(Coroutine, _Run) - { - LUAX_PREPARE(L, Coroutine); - - return 0; - } - - } -} diff --git a/source/libs/asura-lib-utils/threading/binding/_thread.cpp b/source/libs/asura-lib-utils/threading/binding/_thread.cpp deleted file mode 100644 index a5aff03..0000000 --- a/source/libs/asura-lib-utils/threading/binding/_thread.cpp +++ /dev/null @@ -1,210 +0,0 @@ -#include "../thread.h" - -using namespace std; - -namespace AsuraEngine -{ - namespace Threading - { - - LUAX_REGISTRY(Thread) - { - LUAX_REGISTER_METHODS(state, - { "New", _New }, - { "AddTask", _AddTask }, - { "Start", _Start }, - { "Idle", _Idle }, - { "Pause", _Pause }, - { "Resume", _Resume }, - { "Stop", _Stop }, - { "Join", _Join }, - { "IsRunning", _IsRunning }, - { "IsPaused", _IsPaused }, - { "IsStopped", _IsStopped }, - { "IsCurrent", _IsCurrent }, - { "Sleep", _Sleep }, - { "Post", _Post }, - { "GetName", _GetName }, - { "GetType", _GetType }, - { "GetState", _GetState } - ); - } - - LUAX_POSTPROCESS(Thread) - { - LUAX_REGISTER_ENUM(state, "EThreadType", - { "DEFERRED", THREAD_TYPE_DEFERRED }, - { "IMMEDIATE", THREAD_TYPE_IMMEDIATE } - ); - LUAX_REGISTER_ENUM(state, "EThreadState", - { "READY", THREAD_STATE_IDLE }, - { "RUNNING", THREAD_STATE_RUNNING }, - { "PAUSED", THREAD_STATE_PAUSED }, - { "STOPPED", THREAD_STATE_STOPPED } - ); - } - - // thread = Thread.New(thread_type, sleepTime, name) - LUAX_IMPL_METHOD(Thread, _New) - { - LUAX_STATE(L); - - ThreadType type = (ThreadType)state.GetValue(1, THREAD_TYPE_DEFERRED); - uint sleepTime = state.GetValue(2,1); - cc8* name = state.GetValue(3, ""); - - Thread* thread = new Thread(state, type, sleepTime, name); - thread->PushLuaxUserdata(state); - - return 1; - } - - // thread:AddTask(task) - LUAX_IMPL_METHOD(Thread, _AddTask) - { - LUAX_PREPARE(L, Thread); - - Task* task = state.GetUserdata(2); - self->AddTask(task); - self->LuaxRetain(state, task); - return 0; - } - - // successed = thread:Start(isDeamon, stackSize) - LUAX_IMPL_METHOD(Thread, _Start) - { - LUAX_PREPARE(L, Thread); - - bool isDaemon = state.GetValue(2, true); - uint stackSize = state.GetValue(3, 0); - - state.Push(self->Start(isDaemon, stackSize)); - return 1; - } - - // thread:Idle() - LUAX_IMPL_METHOD(Thread, _Idle) - { - LUAX_PREPARE(L, Thread); - self->Idle(); - return 0; - } - - // thread:Pause() - LUAX_IMPL_METHOD(Thread, _Pause) - { - LUAX_PREPARE(L, Thread); - self->Pause(); - return 0; - } - - // thread:Resume() - LUAX_IMPL_METHOD(Thread, _Resume) - { - LUAX_PREPARE(L, Thread); - self->Resume(); - return 0; - } - - // thread:Stop() - LUAX_IMPL_METHOD(Thread, _Stop) - { - LUAX_PREPARE(L, Thread); - self->Stop(); - return 0; - } - - // thread:Join() - LUAX_IMPL_METHOD(Thread, _Join) - { - LUAX_PREPARE(L, Thread); - self->Join(); - return 0; - } - - // thread:IsRunning() - LUAX_IMPL_METHOD(Thread, _IsRunning) - { - LUAX_PREPARE(L, Thread); - state.Push(self->IsRunning()); - return 1; - } - - // thread:IsPaused() - LUAX_IMPL_METHOD(Thread, _IsPaused) - { - LUAX_PREPARE(L, Thread); - state.Push(self->IsPaused()); - return 1; - } - - // thread:IsStopped() - LUAX_IMPL_METHOD(Thread, _IsStopped) - { - LUAX_PREPARE(L, Thread); - state.Push(self->IsStopped()); - return 1; - } - - // thread:IsCurrent() - LUAX_IMPL_METHOD(Thread, _IsCurrent) - { - LUAX_PREPARE(L, Thread); - state.Push(self->IsCurrent()); - return 1; - } - - // Thread.Sleep(ms) - LUAX_IMPL_METHOD(Thread, _Sleep) - { - LUAX_STATE(L); - uint ms = state.GetValue(1, 0); -#ifdef _WIN32 - ::Sleep(ms); -#endif - return 0; - } - - // thread:Post() - LUAX_IMPL_METHOD(Thread, _Post) - { - LUAX_PREPARE(L, Thread); - self->Post(); - return 0; - } - - // thread:GetName() - LUAX_IMPL_METHOD(Thread, _GetName) - { - LUAX_PREPARE(L, Thread); - state.Push(self->GetName()); - return 1; - } - - // thread:GetType() - LUAX_IMPL_METHOD(Thread, _GetType) - { - LUAX_PREPARE(L, Thread); - state.Push(self->mType); - return 1; - } - - // thread:GetState() - LUAX_IMPL_METHOD(Thread, _GetState) - { - LUAX_PREPARE(L, Thread); - state.Push(self->mState); - return 1; - } - - // thread:SetSleepTime(sleepTime) - LUAX_IMPL_METHOD(Thread, _SetSleepTime) - { - LUAX_PREPARE(L, Thread); - uint time = state.CheckValue(2); - self->SetSleepTime(time); - return 0; - } - - } -} diff --git a/source/libs/asura-lib-utils/threading/coroutine.cpp b/source/libs/asura-lib-utils/threading/coroutine.cpp deleted file mode 100644 index 9f65c5f..0000000 --- a/source/libs/asura-lib-utils/threading/coroutine.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "coroutine.h" - -namespace AsuraEngine -{ - namespace Threading - { -/* - Coroutine::Coroutine() - { - - } -*/ - - - } -} diff --git a/source/libs/asura-lib-utils/threading/coroutine.h b/source/libs/asura-lib-utils/threading/coroutine.h deleted file mode 100644 index 01af654..0000000 --- a/source/libs/asura-lib-utils/threading/coroutine.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef __ASURA_COROUTINE_H__ -#define __ASURA_COROUTINE_H__ - -#include "../scripting/portable.hpp" - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// lua协程,用来做一些逻辑并发操作。 - /// - class Coroutine ASURA_FINAL - : public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(Coroutine); - - - - private: - - /// - /// 当前协程的state - /// - lua_State* mThreadState; - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_Run); - - }; - - } -} - -namespace AEThreading = AsuraEngine::Threading; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/mutex.cpp b/source/libs/asura-lib-utils/threading/mutex.cpp deleted file mode 100644 index 663ac28..0000000 --- a/source/libs/asura-lib-utils/threading/mutex.cpp +++ /dev/null @@ -1,106 +0,0 @@ -#include - -#include "mutex.h" - -namespace AsuraEngine -{ - namespace Threading - { - -#define try_create_mutex(impl)\ - if (!mImpl) \ - { \ - try \ - { \ - mImpl = new impl(); \ - } \ - catch (Exception& e) \ - { \ - mImpl = nullptr; \ - } \ - } - - Mutex::Mutex() - : mImpl(nullptr) - { -#if ASURA_MUTEX_WIN32_CRITICLE_SECTION - try_create_mutex(MutexImplWin32_CS); -#endif -#if ASURA_MUTEX_WIN32_KERNAL_MUTEX - try_create_mutex(MutexImplWin32_KM); -#endif - ASSERT(mImpl); - } - - Mutex::~Mutex() - { - delete mImpl; - } - - void Mutex::Lock() - { - ASSERT(mImpl); - - mImpl->Lock(); - } - - void Mutex::Unlock() - { - ASSERT(mImpl); - - mImpl->Unlock(); - } - -#if ASURA_MUTEX_WIN32_CRITICLE_SECTION - - MutexImplWin32_CS::MutexImplWin32_CS() - { - ::InitializeCriticalSection(&mMutex); - } - - MutexImplWin32_CS::~MutexImplWin32_CS() - { - ::DeleteCriticalSection(&mMutex); - } - - void MutexImplWin32_CS::Lock() - { - ::EnterCriticalSection(&mMutex); - } - - void MutexImplWin32_CS::Unlock() - { - ::LeaveCriticalSection(&mMutex); - } - -#endif // ASURA_MUTEX_WIN32_CRITICLE_SECTION - -#if ASURA_MUTEX_WIN32_KERNAL_MUTEX - - MutexImplWin32_KM::MutexImplWin32_KM() - { - mHandle = ::CreateMutex(NULL, FALSE, NULL); - if (!mHandle) - throw Exception("Cant use win32 mutex."); - } - - MutexImplWin32_KM::~MutexImplWin32_KM() - { - ::CloseHandle(mHandle); - mHandle = NULL; - } - - void MutexImplWin32_KM::Lock() - { - ::WaitForSingleObject(mHandle, INFINITE); - } - - void MutexImplWin32_KM::Unlock() - { - ::ReleaseMutex(mHandle); - } - -#endif // ASURA_MUTEX_WIN32_KERNAL_MUTEX - - } -} diff --git a/source/libs/asura-lib-utils/threading/mutex.h b/source/libs/asura-lib-utils/threading/mutex.h deleted file mode 100644 index 7e7d877..0000000 --- a/source/libs/asura-lib-utils/threading/mutex.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef __ASURA_MUTEX_H__ -#define __ASURA_MUTEX_H__ - -#include - -#include "../utils_config.h" - -#if ASURA_THREAD_WIN32 - #include -#endif - -namespace AsuraEngine -{ - namespace Threading - { - - class MutexImpl; - - class Mutex - { - public: - - Mutex(); - ~Mutex(); - - void Lock(); - void Unlock(); - - private: - - MutexImpl* mImpl; - - }; - - class _mutex_locker - { - public: - _mutex_locker(Mutex& mutex) - : m(mutex) - { - m.Lock(); - }; - ~_mutex_locker() - { - m.Unlock(); - } - private: - void* operator new(size_t); - Mutex& m; - }; - -// 将所在的栈从此位置开始到退栈处作为临界区锁定。 -#define lock(mutex) _mutex_locker _asura_scoped_lock_0x0(mutex) -#define lock2(mutex) _mutex_locker _asura_scoped_lock_0x1(mutex) -#define lock3(mutex) _mutex_locker _asura_scoped_lock_0x2(mutex) -#define lock4(mutex) _mutex_locker _asura_scoped_lock_0x3(mutex) -#define lock5(mutex) _mutex_locker _asura_scoped_lock_0x4(mutex) - - ASURA_ABSTRACT class MutexImpl - { - public: - - MutexImpl() {}; - virtual ~MutexImpl() {}; - - virtual void Lock() = 0; - virtual void Unlock() = 0; - - }; - -#if ASURA_MUTEX_WIN32_CRITICLE_SECTION - - //https://blog.csdn.net/l799623787/article/details/18259949 - class MutexImplWin32_CS ASURA_FINAL : public MutexImpl - { - public: - - MutexImplWin32_CS(); - ~MutexImplWin32_CS(); - - void Lock() override; - void Unlock() override; - - private: - - //HANDLE mHandle; - CRITICAL_SECTION mMutex; - - }; - -#endif // ASURA_MUTEX_WIN32_CRITICLE_SECTION - -#if ASURA_MUTEX_WIN32_KERNAL_MUTEX - - class MutexImplWin32_KM ASURA_FINAL : public MutexImpl - { - public: - - MutexImplWin32_KM(); - ~MutexImplWin32_KM(); - - void Lock() override; - void Unlock() override; - - private: - - HANDLE mHandle; - - }; - -#endif // ASURA_MUTEX_WIN32_KERNAL_MUTEX - -#if ASURA_THREAD_STD - - class MutexImplSTD ASURA_FINAL : public MutexImpl - { - }; - -#endif // ASURA_THREAD_STD - - } -} - -namespace AEThreading = AsuraEngine::Threading; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/semaphore.cpp b/source/libs/asura-lib-utils/threading/semaphore.cpp deleted file mode 100644 index d59ec78..0000000 --- a/source/libs/asura-lib-utils/threading/semaphore.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include "../exceptions/exception.h" -#include "../type.h" - -#include "semaphore.h" - -namespace AsuraEngine -{ - namespace Threading - { - -#define try_create_semaphore(impl) \ - if (!mImpl) \ - { \ - try \ - { \ - mImpl = new impl(init_count); \ - } \ - catch (Exception& e) \ - { \ - mImpl = nullptr; \ - } \ - } - - Semaphore::Semaphore(unsigned int init_count) - : mImpl(nullptr) - { -#ifdef ASURA_THREAD_WIN32 - try_create_semaphore(SemaphoreWin32); -#endif - ASSERT(mImpl); - } - - Semaphore::~Semaphore() - { - if (mImpl) delete mImpl; - } - - void Semaphore::Signal() - { - ASSERT(mImpl); - mImpl->Signal(); - } - - void Semaphore::Wait(int timeout) - { - ASSERT(mImpl); - mImpl->Wait(timeout); - } - -#if ASURA_THREAD_WIN32 - - SemaphoreWin32::SemaphoreWin32(unsigned int init_value) - : SemaphoreImpl(init_value) - { - mSem = CreateSemaphore(NULL, init_value, UINT_MAX, NULL); - if (!mSem) - throw Exception("Cant use win32 semaphore."); - } - - SemaphoreWin32::~SemaphoreWin32() - { - CloseHandle(mSem); - } - - void SemaphoreWin32::Signal() - { - InterlockedIncrement(&mCount); - if (ReleaseSemaphore(mSem, 1, NULL) == FALSE) - InterlockedDecrement(&mCount); - } - - bool SemaphoreWin32::Wait(int timeout) - { - int result; - result = WaitForSingleObject(mSem, timeout < 0 ? INFINITE : timeout); - if (result == WAIT_OBJECT_0) - { - InterlockedDecrement(&mCount); - return true; - } - else - return false; - } - -#endif // ASURA_THREAD_WIN32 - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/semaphore.h b/source/libs/asura-lib-utils/threading/semaphore.h deleted file mode 100644 index 80773d8..0000000 --- a/source/libs/asura-lib-utils/threading/semaphore.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef __ASURA_SEMAPHORE_H__ -#define __ASURA_SEMAPHORE_H__ - -#include "../utils_config.h" - -#if ASURA_THREAD_WIN32 -#include -#endif - -namespace AsuraEngine -{ - namespace Threading - { - - class SemaphoreImpl; - - /// - /// 信号量 - /// - class Semaphore - { - public: - - Semaphore(unsigned int init_count = 1); - ~Semaphore(); - - void Signal(); - void Wait(int timeout = 0); - - private: - SemaphoreImpl* mImpl; - }; - - class SemaphoreImpl - { - public: - SemaphoreImpl(unsigned int init_value) - : mCount(init_value) - { - }; - virtual ~SemaphoreImpl() {}; - virtual void Signal() = 0; - virtual bool Wait(int timeout) = 0; - inline int Current() { return mCount; } - protected: - unsigned int mCount; - }; - -#define wait(sem) sem.Wait(); -#define signal(sem) sem.Signal(); - -#if ASURA_THREAD_WIN32 - - class SemaphoreWin32 : public SemaphoreImpl - { - public: - SemaphoreWin32(unsigned int init_value); - ~SemaphoreWin32(); - void Signal() override; - bool Wait(int timeout) override; - private: - HANDLE mSem; - }; - -#endif // ASURA_THREAD_WIN32 - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/task.cpp b/source/libs/asura-lib-utils/threading/task.cpp deleted file mode 100644 index 2e84ed4..0000000 --- a/source/libs/asura-lib-utils/threading/task.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "task.h" -#include "../scripting/lua_env.h" - -using namespace AEScripting; - -namespace AsuraEngine -{ - namespace Threading - { - - } -} diff --git a/source/libs/asura-lib-utils/threading/task.h b/source/libs/asura-lib-utils/threading/task.h deleted file mode 100644 index fb7aa5f..0000000 --- a/source/libs/asura-lib-utils/threading/task.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef __ASURA_THRAD_TASK_H__ -#define __ASURA_THRAD_TASK_H__ - -#include -#include - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// 希望放在另一个线程处理的任务,继承Task并重写Execute方法。 - /// - ASURA_ABSTRACT class Task - : public virtual AEScripting::NativeAccessor - { - public: - - Task() {}; - virtual ~Task() {}; - - /// - /// 执行任务,完成后返回true,调用回调函数。 - /// - virtual bool Execute() = 0; - - /// - /// 调用回调。在invoke thread里面回调。 - /// - virtual void Invoke(lua_State* invokeThreaad) = 0; - - protected: - - // 取回调函数 - Luax::LuaxMemberRef mCallback; - - }; - - } -} - -namespace AEThreading = AsuraEngine::Threading; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/thread.cpp b/source/libs/asura-lib-utils/threading/thread.cpp deleted file mode 100644 index 0f4f5da..0000000 --- a/source/libs/asura-lib-utils/threading/thread.cpp +++ /dev/null @@ -1,272 +0,0 @@ -#include "thread.h" - -#include "thread_impl_win32.h" -#include "thread_impl_posix.h" -#include "thread_impl_sdl.h" -#include "thread_impl_std.h" - -namespace AsuraEngine -{ - namespace Threading - { - - Thread::Thread(lua_State* luaThread, ThreadType type /*= THREAD_TYPE_DEFERRED*/, uint sleepTime /*= 0*/, const std::string& name /*= ""*/) - : mName(name) - , mState(THREAD_STATE_IDLE) - , mType(type) - , mLuaThread(luaThread) - , mCallbackThread(nullptr) - , mSleepTime(sleepTime) - { - LUAX_STATE(luaThread); - if (type == THREAD_TYPE_IMMEDIATE) - { - Luax::LuaxVM* vm = state.GetVM(); - ASSERT(vm); - mCallbackThread = vm->CreateThread(); - ASSERT(mCallbackThread); - SetLuaxMemberRef(state, mCallbackThreadRef, -1); - state.Pop(); // callback thread - } - } - - Thread::~Thread() - { - if (mImpl) - { - delete mImpl; - mImpl = nullptr; - } - } - - bool Thread::AddTask(Task* task) - { - lock(mTaskQueueMutex); - mTaskQueue.push(task); - return true; - } - - uint Thread::GetTaskCount() - { - return mTaskQueue.size(); - } - - void Thread::Idle() - { - mState = THREAD_STATE_IDLE; - } - -#define try_start_thread(impl)\ - if (!mImpl) \ - { \ - mImpl = new impl(); \ - if (!mImpl->Start(this, stacksize)) \ - { \ - delete mImpl; \ - mImpl = nullptr; \ - } \ - } - - bool Thread::Start(bool isDaemon /*= true*/, uint32 stacksize /*= 0*/) - { - if (mState != THREAD_STATE_IDLE) - return false; - - // 如果已经存在一个之前创建的,关闭它。 - if (mImpl) - { - delete mImpl; - mImpl = nullptr; - } - -#if ASURA_THREAD_WIN32 - try_start_thread(ThreadImplWin32); -#endif - - if (!mImpl) - return false; - - mIsDaemon = isDaemon; - mStateMutex.Lock(); - mState = THREAD_STATE_RUNNING; - mStateMutex.Unlock(); - } - - void Thread::Pause() - { - ASSERT(mImpl); - - lock(mStateMutex); - mState = THREAD_STATE_PAUSED; - } - - void Thread::Resume() - { - ASSERT(mImpl); - - lock(mStateMutex); - if(mState == THREAD_STATE_PAUSED) - mState = THREAD_STATE_RUNNING; - } - - void Thread::Stop() - { - ASSERT(mImpl); - - lock(mStateMutex); - mState = THREAD_STATE_STOPPED; - } - - void Thread::PauseSync() - { - Pause(); - wait(mSemPause); - } - - void Thread::ResumeSync() - { - Resume(); - wait(mSemResume); - } - - void Thread::StopSync() - { - Stop(); - wait(mSemStop); - } - - void Thread::Join() - { - ASSERT(mImpl); - mImpl->Join(); - } - - ThreadState Thread::GetState() - { - ThreadState state; - mStateMutex.Lock(); - state = mState; - mStateMutex.Unlock(); - return state; - } - - bool Thread::IsRunning() - { - ASSERT(mImpl); - - return GetState() == THREAD_STATE_RUNNING; - } - - bool Thread::IsPaused() - { - ASSERT(mImpl); - - return GetState() == THREAD_STATE_PAUSED; - } - - bool Thread::IsStopped() - { - ASSERT(mImpl); - - return GetState() == THREAD_STATE_STOPPED; - } - - bool Thread::IsCurrent() - { - ASSERT(mImpl); - - return mImpl->IsCurrent(); - } - - const std::string& Thread::GetName() - { - return mName; - } - - void Thread::Process() - { - LUAX_STATE(mLuaThread); - - do{ - if (IsRunning()) - { - while (!mTaskQueue.empty()) - { - Task* task = mTaskQueue.front(); - if (task && task->Execute()) - { - if (mType == THREAD_TYPE_DEFERRED) - { - mFinishedMutex.Lock(); - mFinishedTasks.push(task); - mFinishedMutex.Unlock(); - } - else if (mType == THREAD_TYPE_IMMEDIATE) - { - task->Invoke(mCallbackThread); - this->LuaxRelease(state, task); - } - mTaskQueueMutex.Lock(); - mTaskQueue.pop(); - mTaskQueueMutex.Unlock(); - } - } - } - - // 退出循环 - if (IsStopped()) - break; - - // 降低CPU使用率 - Sleep(mSleepTime); - - } while (mIsDaemon); - - // 非守护线程,先切到stop状态 - if (!mIsDaemon) - Stop(); - - signal(mSemStop); - - // 重置状态为Idle - Idle(); - } - - /// - /// 延迟模式主动发布回调、 - /// - void Thread::Post() - { - ASSERT(mType == THREAD_TYPE_DEFERRED); - - LUAX_STATE(mLuaThread); - while (!mFinishedTasks.empty()) - { - Task* task = mFinishedTasks.front(); - if (task) - { - task->Invoke(mLuaThread); - this->LuaxRelease(state, task); - mFinishedMutex.Lock(); - mFinishedTasks.pop(); - mFinishedMutex.Unlock(); - } - } - } - - void Thread::Sleep(uint ms) - { - ASSERT(mImpl); - if (mImpl) - { - mImpl->Sleep(ms); - } - } - - void Thread::SetSleepTime(uint ms) - { - mSleepTime = ms; - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/thread.h b/source/libs/asura-lib-utils/threading/thread.h deleted file mode 100644 index 0e75770..0000000 --- a/source/libs/asura-lib-utils/threading/thread.h +++ /dev/null @@ -1,221 +0,0 @@ -#ifndef __ASURA_THREAD_H__ -#define __ASURA_THREAD_H__ - -#include -#include - -#include - -#include "task.h" -#include "mutex.h" -#include "semaphore.h" - -namespace AsuraEngine -{ - namespace Threading - { - - class ThreadImpl; - - /// - /// 线程的几种不同的实现: - /// 1: Deferred(延迟模式),线程上的任务完成后,需要手动在主线程调用Post方法, - /// 在主线程调回调函数,将发布从异步改为同步操作,解决主lua_State冲突的问题。 - /// 2: Immediate(立即模式),每一个线程维护一个lua_newthread创建出来的lua_State。 - /// 回调函数在不同的lua_State中调用,避免不同的线程访问同一个lua_State。 - /// - enum ThreadType - { - THREAD_TYPE_DEFERRED, - THREAD_TYPE_IMMEDIATE, - }; - - enum ThreadState - { - THREAD_STATE_IDLE, ///< 闲置,还未创建内核对象 - THREAD_STATE_RUNNING, ///< 正在运行循环 - THREAD_STATE_PAUSED, ///< 在循环中暂停 - THREAD_STATE_STOPPED, ///< 退出循环 - }; - - /// - /// 线程主体,每个线程维护一个task queue。 - /// - class Thread ASURA_FINAL - : public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(Thread); - - Thread(lua_State* luaThread, ThreadType type = THREAD_TYPE_DEFERRED, uint sleepTime = 1, const std::string& name = ""); - ~Thread(); - - bool AddTask(Task* task); - /// - /// 获得等待处理的任务数 - /// - uint GetTaskCount(); - - void Idle(); - - /// - /// 创建内核对象,并运行。如果是daemon,会等待手动stop。否则会在某时刻队列完成后自动stop。 - /// - bool Start(bool daemon = true, uint32 stacksize = 0); - - /// - /// 非同步线程控制,不是实时的。可能需要在主线程里使用Is函数确认到达指定状态。 - /// - void Pause(); - void Resume(); - void Stop(); - - /// - /// 同步线程控制,会等返回来信号后继续向下执行。会造成主线程等待。 - /// - void PauseSync(); - void ResumeSync(); - void StopSync(); - - /// - /// 父线程等待本线程结束后才继续执行。 - /// - void Join(); - - ThreadState GetState(); - - /// - /// 逻辑层面的线程状态: - /// 1: Idle(空闲),线程创建后的默认状态,可以随时加任务并且Start。 - /// 2: Running(运行),内核对象呗创建,已经处于内核调度中,并处理具体Task。 - /// 3: Paused(暂停),依然存在于内核中,但是跳过了对任务的处理,逻辑上暂停。 - /// 4: Stopped(停止),依然存在于内核中,但是已经无法继续处理任务。 - /// - bool IsIdle(); - bool IsRunning(); - bool IsPaused(); - bool IsStopped(); - - bool IsCurrent(); - - /// - /// 执行任务队列。 - /// - void Process(); - - const std::string& GetName(); - - /// - /// 回调。 - /// - void Post(); - - /// - /// 休眠函数 - /// - void Sleep(uint ms); - - /// - /// 设置休眠时间 - /// - void SetSleepTime(uint ms); - - private: - - //----------------------------------------------------------------------------// - - LUAX_DECL_ENUM(ThreadType); - LUAX_DECL_ENUM(ThreadState); - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_AddTask); - LUAX_DECL_METHOD(_Start); - LUAX_DECL_METHOD(_Idle); - LUAX_DECL_METHOD(_Pause); - LUAX_DECL_METHOD(_Resume); - LUAX_DECL_METHOD(_Stop); - LUAX_DECL_METHOD(_Join); - LUAX_DECL_METHOD(_IsRunning); - LUAX_DECL_METHOD(_IsPaused); - LUAX_DECL_METHOD(_IsStopped); - LUAX_DECL_METHOD(_IsCurrent); - LUAX_DECL_METHOD(_Sleep); - LUAX_DECL_METHOD(_Post); - LUAX_DECL_METHOD(_GetName); - LUAX_DECL_METHOD(_GetType); - LUAX_DECL_METHOD(_GetState); - LUAX_DECL_METHOD(_SetSleepTime); - - //----------------------------------------------------------------------------// - - /// - /// 此次运行是否是守护模式。 - /// - bool mIsDaemon; - - lua_State* mLuaThread; - - ThreadImpl* mImpl; - std::string mName; - ThreadType mType; - uint mSleepTime; - - ThreadState mState; - Mutex mStateMutex; - - /// - /// 同步控制相关的信号量 - /// - Semaphore mSemPause; - Semaphore mSemResume; - Semaphore mSemStop; - - /// - /// 待处理的任务队列。 - /// - std::queue mTaskQueue; - Mutex mTaskQueueMutex; - - /// - /// 延迟模式使用 - /// - std::queue mFinishedTasks; - Mutex mFinishedMutex; - - /// - /// 立即模式使用,回调使用的lua线程 - /// - lua_State* mCallbackThread; - Luax::LuaxMemberRef mCallbackThreadRef; - - }; - - /// - /// 线程的具体实现,对用户是透明的,一共准备了四种策略: - /// 1: win32 - /// 2: posix - /// 3: SDL - /// 4: std::thread - /// - ASURA_ABSTRACT class ThreadImpl - { - public: - ThreadImpl() {}; - virtual ~ThreadImpl() {}; - - virtual bool Start(Thread* thread, uint32 stacksize = 0) = 0; - virtual void Join() = 0; - virtual void Kill() = 0; - - virtual void Sleep(uint ms) = 0; - - virtual bool IsRunning() = 0; - virtual bool IsCurrent() = 0; - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/thread_impl_posix.cpp b/source/libs/asura-lib-utils/threading/thread_impl_posix.cpp deleted file mode 100644 index d2ad7af..0000000 --- a/source/libs/asura-lib-utils/threading/thread_impl_posix.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "thread_impl_posix.h" - -namespace AsuraEngine -{ - namespace Threading - { - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/thread_impl_posix.h b/source/libs/asura-lib-utils/threading/thread_impl_posix.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/threading/thread_impl_sdl.cpp b/source/libs/asura-lib-utils/threading/thread_impl_sdl.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/threading/thread_impl_sdl.h b/source/libs/asura-lib-utils/threading/thread_impl_sdl.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/threading/thread_impl_std.cpp b/source/libs/asura-lib-utils/threading/thread_impl_std.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/threading/thread_impl_std.h b/source/libs/asura-lib-utils/threading/thread_impl_std.h deleted file mode 100644 index 0e7d3da..0000000 --- a/source/libs/asura-lib-utils/threading/thread_impl_std.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef __ASURA_THREAD_STD_H__ -#define __ASURA_THREAD_STD_H__ - -#include "../utils_config.h" - -#if ASURA_THREAD_STD - -#include - -#include "thread.h" - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// Thread的std::thread实现。 - /// - class ThreadImplSTD : public ThreadImpl - { - public: - - ThreadImplSTD(); - ~ThreadImplSTD(); - - bool Start(Thread* thread, uint32 stacksize) override; - void Join() override; - void Kill() override; - - bool IsRunning() override; - bool IsCurrent() override; - - private: - - }; - - } -} - -#endif // #if ASURA_THREAD_STD - -#endif // __ASURA_THREAD_STD_H__ \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/thread_impl_win32.cpp b/source/libs/asura-lib-utils/threading/thread_impl_win32.cpp deleted file mode 100644 index 6871c2d..0000000 --- a/source/libs/asura-lib-utils/threading/thread_impl_win32.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include "thread_impl_win32.h" -#include "thread.h" - -#include - -namespace AsuraEngine -{ - namespace Threading - { - - static DWORD WINAPI _thread_win32_runner(LPVOID param) - { - Thread* thread = (Thread*)param; - thread->Process(); - return 0; - } - - ThreadImplWin32::ThreadImplWin32() - { - } - - ThreadImplWin32::~ThreadImplWin32() - { - if (!mHandle) return; - ::CloseHandle(mHandle); - mHandle = 0; - } - - bool ThreadImplWin32::Start(Thread* thread, uint32 stacksize/*=0*/) - { - assert(!IsRunning()); - mHandle = ::CreateThread( - NULL - , stacksize - , _thread_win32_runner - , thread - , 0 /*创建后立即进行调度*/ - , NULL); - - return mHandle; - } - - void ThreadImplWin32::Join() - { - // 父线程等待此线程返回 - ::WaitForSingleObject(mHandle, INFINITE); - } - - void ThreadImplWin32::Kill() - { - ::TerminateThread(mHandle, FALSE); - } - - void ThreadImplWin32::Sleep(uint ms) - { - ::Sleep(ms); - } - - bool ThreadImplWin32::IsRunning() - { - if (mHandle) { - DWORD exitCode = 0; - // https://blog.csdn.net/yuanmeng567/article/details/19485719 - ::GetExitCodeThread(mHandle, &exitCode); - return exitCode == STILL_ACTIVE; - } - return false; - } - - bool ThreadImplWin32::IsCurrent() - { - return mHandle == ::GetCurrentThread(); - } - - } -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/thread_impl_win32.h b/source/libs/asura-lib-utils/threading/thread_impl_win32.h deleted file mode 100644 index a22aeef..0000000 --- a/source/libs/asura-lib-utils/threading/thread_impl_win32.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef __ASURA_THREAD_WIN32_H__ -#define __ASURA_THREAD_WIN32_H__ - -#include "../utils_config.h" - -#if ASURA_THREAD_WIN32 - -#include - -#include "thread.h" - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// Thread的win32实现。 - /// - class ThreadImplWin32 : public ThreadImpl - { - public: - - ThreadImplWin32(); - ~ThreadImplWin32(); - - bool Start(Thread* thread, uint32 stacksize) override; - void Join() override; - void Kill() override; - - void Sleep(uint ms) override; - - bool IsRunning() override; - bool IsCurrent() override; - - private: - - HANDLE mHandle; - - }; - - } -} - -#endif // #if ASURA_THREAD_WIN32 - -#endif // __ASURA_THREAD_WIN32_H__ \ No newline at end of file diff --git a/source/libs/asura-lib-utils/threading/thread_task.cpp b/source/libs/asura-lib-utils/threading/thread_task.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/libs/asura-lib-utils/threading/thread_task.h b/source/libs/asura-lib-utils/threading/thread_task.h deleted file mode 100644 index 1ea0a1a..0000000 --- a/source/libs/asura-lib-utils/threading/thread_task.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef __ASURA_THRAD_TASK_H__ -#define __ASURA_THRAD_TASK_H__ - -#include -#include - -namespace AsuraEngine -{ - namespace Threading - { - - /// - /// 希望放在另一个线程处理的任务,继承Task并重写Execute方法。 - /// - ASURA_ABSTRACT class ThreadTask - : virtual public AEScripting::NativeAccessor - { - public: - - ThreadTask(); - virtual ~ThreadTask(); - - /// - /// 执行任务,完成后返回true,调用回调函数。 - /// - virtual bool Execute() = 0; - - /// - /// 调用回调。 - /// - virtual void Invoke() = 0; - - protected: - - Luax::LuaxMemberRef mCallback; - - }; - - } -} - -namespace AEThreading = AsuraEngine::Threading; - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/type.h b/source/libs/asura-lib-utils/type.h deleted file mode 100644 index 1ed2d42..0000000 --- a/source/libs/asura-lib-utils/type.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef __ASURA_UTILS_TYPE_H__ -#define __ASURA_UTILS_TYPE_H__ - -#include -#include - -namespace AsuraEngine -{ - - //--------------------------------------------------------------------------------// - - typedef int8_t int8; - typedef uint8_t uint8; - //typedef uint8 byte; - typedef char byte; - typedef int16_t int16; - typedef uint16_t uint16; - typedef int32_t int32; - typedef uint32_t uint32; - typedef int64_t int64; - typedef uint64_t uint64; - - typedef uint32_t uint; - typedef int32_t sint; - - typedef std::size_t size_t; - - typedef const char cc8; - - //--------------------------------------------------------------------------------// - -#ifndef ASSERT - #ifdef NDEBUG - #define ASSERT(x) { false ? (void)(x) : (void)0; } - #else - #ifdef _WIN32 - #define ASURA_DEBUG_BREAK() __debugbreak() - #else - #define ASURA_DEBUG_BREAK() raise(SIGTRAP) - #endif - #define ASSERT(x) do { const volatile bool asura_assert_b____ = !(x); if(asura_assert_b____) ASURA_DEBUG_BREAK(); } while (false) - #endif -#endif - - //--------------------------------------------------------------------------------// - -#ifdef _WIN32 - #define ASURA_FINAL final - #define ASURA_LIBRARY_EXPORT __declspec(dllexport) - #define ASURA_LIBRARY_IMPORT __declspec(dllimport) - #define ASURA_FORCE_INLINE __forceinline - #define ASURA_RESTRICT __restrict - #define ASURA_ATTRIBUTE_USED - #define ASURA_ABSTRACT - #define ASURA_API ASURA_LIBRARY_EXPORT - - #define ASURA_WINDOWS 1 -#else - #define ASURA_FINAL final - #define ASURA_LIBRARY_EXPORT __attribute__((visibility("default"))) - #define ASURA_LIBRARY_IMPORT - #define ASURA_FORCE_INLINE __attribute__((always_inline)) inline - #define ASURA_RESTRICT __restrict__ - #define ASURA_ATTRIBUTE_USED __attribute__((used)) - #define ASURA_ABSTRACT - #define ASURA_API ASURA_LIBRARY_EXPORT -#endif - - /// - /// 表明输出和引用参数 - /// -#define ASURA_OUT -#define ASURA_REF - /// - /// 表明移动指针所有权 - /// -#define ASURA_MOVE - - //--------------------------------------------------------------------------------// - -#define ASURA_SDL_HOST 1 - -} // namespace AsuraEngine - -#endif // __ASURA_CONFIG_H__ \ No newline at end of file diff --git a/source/libs/asura-lib-utils/utils.h b/source/libs/asura-lib-utils/utils.h deleted file mode 100644 index ce1c6a1..0000000 --- a/source/libs/asura-lib-utils/utils.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __ASURA_UTILS_H__ -#define __ASURA_UTILS_H__ - -#include "utils_module.h" - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/utils_config.h b/source/libs/asura-lib-utils/utils_config.h deleted file mode 100644 index 02837dc..0000000 --- a/source/libs/asura-lib-utils/utils_config.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __ASURA_UTILS_CONFIG_H__ -#define __ASURA_UTILS_CONFIG_H__ - -#define ASURA_THREAD_WIN32 1 -#define ASURA_THREAD_STD 1 - -#define ASURA_MUTEX_WIN32_CRITICLE_SECTION 1 -#define ASURA_MUTEX_WIN32_KERNAL_MUTEX 1 - -#endif \ No newline at end of file diff --git a/source/libs/asura-lib-utils/utils_module.cpp b/source/libs/asura-lib-utils/utils_module.cpp deleted file mode 100644 index 61780e6..0000000 --- a/source/libs/asura-lib-utils/utils_module.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include "utils_module.h" - -using namespace AsuraEngine::IO; -using namespace AsuraEngine::Threading; - -namespace AsuraEngine -{ - - void UtilsModule::Initialize(Luax::LuaxState& state) - { - // IO - LUAX_REGISTER_SINGLETON(state, Filesystem); - LUAX_REGISTER_FACTORY(state, DataBuffer); - LUAX_REGISTER_FACTORY(state, FileData); - LUAX_REGISTER_FACTORY(state, File); - LUAX_REGISTER_FACTORY(state, IOTask); - // Threading - LUAX_REGISTER_FACTORY(state, Thread); - } - - void UtilsModule::Finalize(Luax::LuaxState& state) - { - } - -} \ No newline at end of file diff --git a/source/libs/asura-lib-utils/utils_module.h b/source/libs/asura-lib-utils/utils_module.h deleted file mode 100644 index e802730..0000000 --- a/source/libs/asura-lib-utils/utils_module.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __ASURA_LIBS_UTIL_MODULE_H__ -#define __ASURA_LIBS_UTIL_MODULE_H__ - -#include "io/file_system.h" -#include "io/data_buffer.h" -#include "io/file_data.h" -#include "io/file.h" -#include "io/io_task.h" - -#include "threading/thread.h" - -#include "module.h" - -namespace AsuraEngine -{ - - /// - /// Asura公用模块 - /// - class UtilsModule ASURA_FINAL : public Module - { - public: - - void Initialize(Luax::LuaxState& state) override; - - void Finalize(Luax::LuaxState& state) override; - - }; - -} - -#endif \ No newline at end of file -- cgit v1.1-26-g67d0