Skip to content

Roadmap #1

Closed
Closed
@halx99

Description

@halx99

Notes

ProgramState* ProgramStateRegistry::getProgramState(ProgramType programType, Texture2D* texture)
{
 auto textureFormatEXT = texture ? texture->getTextureFormatEXT() : 0;
 
 char hashMe[sizeof(programType) + sizeof(texture)];
 memcpy(hashMe, &programType, sizeof(programType));
 memcpy(hashMe + sizeof(programType), &texture, sizeof(texture));
 auto key = XXH32((const void*)&hashMe, sizeof(hashMe), 0);

 auto iter = _programStateCache.find(key);
 if (iter != _programStateCache.end())
     return iter->second;

 auto programState = newProgramState(programType, textureFormatEXT);
 if (programState) {
     _programStateCache.emplace(key, programState);
 }
 return programState;
}

Engine core

  • RenderTarget abstract
  • Refactor enums map method, use table instead many much switch case
  • Cache depthstencil state, tsl::robin_map
  • Remove FileUtils::getFileDataFromZip, recommend use ZipFile instead
  • ASTC 4x4/8x8 support
  • ETC2 RGB/RGBA support
  • Improve Image, fast forward compression texels data to GPU
  • Refactor audio engine, OpenAL for all platforms
  • Remove SimpleAudio
  • Remove offthread file operation
  • Explicit convert utf-8 file path to wide-string and call wide win32 file operation APIs
  • Refactor Downloader, curl for all platforms, don't use scheduler to retrieve progress info, make it more reusable
  • minizip-1.2.0
  • ccMessageBox
  • BMP support with stb_image
  • Remove unused libuv
  • Reorder child support
  • Remove tinyxml2 dep, use pugixml instead
  • Use xsxml for SAX parser only
  • Multi meta textures v1.0
  • ProgramStateRegistry
  • ANGLE support.
  • Use curl for HttpClient all platforms
  • Remove xxtea
  • Remove rapidxml dep
  • Fix etc1 alpha test case, content size incorrect
  • Remove fmod for linux
  • Use stat to check regular file exist for android platform
  • Use int64_t as return type for getFileSize
  • ios .ogg support
  • ZipUtils streaming API, support streaming play audio file in android obb
  • Add & Improve play .wav audio at all platforms
  • Remove unnecessary workaround to process audio tail frame at non-apple platforms.
  • Cache ProgramState
  • Remove socket.io websockets, use yasio for socket connection solution
  • Fully streaming play for all media file: .mp4, .mp3, .ogg, .wav
  • Streaming load for .ttf with freetype2
  • Remove CCB(already removed in v4)
  • Purely offthread load texture, use shared gl context
  • Refactor UserDefault with file mapping io with encrypt support
  • msaa
  • Refactor VideoPlayer
  • GPU texture array support
  • OpenGL RenderBuffer for depth stencil buffer D24S8

Thirdparty

  • Use git submodules to manage 3rd libs or marge 3rd repo to main repo
  • Update zlib to 1.2.11

Extensions:

  • move spine, ccs, dragonBones to extensions
  • All extensions should be optional and can disable relax
  • ImGuiEXT
  • FairyGUI
  • spine-3.8
  • cocostudio
  • dragonBones
  • Also move lua binding to extension
  • Also move spine-cpp to extension
  • EncryptSystem
  • particle system: https://github.com/effekseer

Toolsets And build env

  • Use system env for cmake to avoid copy engine sources when create new project
  • lua-template and lua-empty-test needs fix
  • New command line tool
  • GUI Peoject Creator
  • Sence Editor with ImGui

Lua Binding

  • Lua53 compat
  • Use plainlua instead luajit
  • make lua test works well
  • Remvoe luasocket, use yasio for socket connection solution
  • Use sol2 for binding framework instead tolua++

poors of LuaJIT

  • Lack of maintain
  • High crash from game developer
  • Performance(jit==on) slow than planlua without restricts programing (luajit have to many programing restricts)

benefit of lua5.4

  • compat bytecode 32,64bit app without any changes

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions