Skip to content

Core_API_Changes

Xrysnow edited this page Dec 18, 2020 · 1 revision

Core API changes

Most APIs is compatible with LuaSTGPlus. In following forms:

  • =>Lua means the implementation is moved to Lua
  • Dep means it's deprecated (but still accessable)
  • New means it's added by LuaSTG-x
  • N/A means not accessable
  • empty means no change

Frame functions

  • SetFPS SetVsync can be used at runtime.
Function Status
ChangeVideoMode =>Lua
DoFile
ExtractRes =>Lua
GetFPS
LoadPack =>Lua
Print
SetFPS
SetResolution =>Lua
SetSplash =>Lua
SetTitle =>Lua
SetVsync
SetWindowed =>Lua, Dep
ShowSplashWindow Dep
SystemLog
UnloadPack =>Lua

Graph functions

  • PostEffectCapture/PostEffectApply are deprecated. They need to create temperary RenderTargets due to implementation. The engine provides one temperary RenderTarget so that you can invoke them only once per frame. Please use CreateRenderTarget/PushRenderTarget/PopRenderTarget instead.
  • New: CreateShaderProgramFromPath/CreateShaderProgramFromString. They can compile GLSL shader and return cocos::backend::Program object. When falied to compile, they will return nil and write information to log.
Function Status
BeginScene
CreateGLProgramFromPath New
CreateGLProgramFromString New
EndScene
PopRenderTarget =>Lua
PostEffect =>Lua
PostEffectApply =>Lua, Dep
PostEffectCapture =>Lua, Dep
PushRenderTarget =>Lua
RenderClear
SetFog
SetOrtho
SetPerspective
SetViewport

Input functions

  • GetLastChar is not accessable.
  • Key code is different (see src/keycode.lua). This will not affect usage.
  • Controller input system is different. It's done by the engine and will not affect usage.
  • Controller keys are not mapped to key code but affect GetKeyState/GetLastKey directly.
Function Status
GetKeyState
GetLastChar N/A
GetLastKey
GetMousePosition
GetMouseState

Object functions

  • New: RegisterClass. Used internally.
  • CollisionCheck now accepts game object.
  • New: CollisionCheck3D.
  • Del/Kill now accept group number or game object array.
  • New: BindNode. Used to bind cocos::Node object to game object.

Render functions

  • New: RenderSector. Used to draw HP bar of boss.
  • New: DrawCollider. Used internally, see src/core/corefunc.lua.
Function Status
DrawGroupCollider New
Render =>Lua
Render4V =>Lua
RenderRect =>Lua
RenderSector New
RenderTexture

Resource functions

  • LoadFont only supports HGE fonts now. HGE fonts will be converted to BMFont fromat and have some limitations.
  • Parameter of LoadTTF changes from name, path, width, height to name, path, size.
  • LoadFX only accepts GLSL shaders now. It supports both fragment and vertex shaders (doc at doc/lstg/resource.lua). Default boss distortion effect is already provided. Note that coordinates of DX and OGL arg different.
  • New: GetImageScale.
  • Dep: IsRenderTarget.
  • All resource functions are moved to Lua.

Sound functions

  • When play by stream, it will not be very accurate when set/get the playback position.
  • All sound functions are moved to Lua.

Text functions

  • All text functions are moved to Lua.
  • New: CalcTextSize. Used to calculate text size.

Misc functions

  • Execute is deleted. Please use os.execute.

Others

  • json/cjson are now implemented by Lua.
  • lfs is not recommended to use. Functions from plus or cc.FileUtils are easier to use.
  • Components of color object can be set/get directly by a/r/g/b properties.