Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
8f292b5
Migrate shaders
halx99 Jul 8, 2026
66b57ef
HLSL 5.1 shader migration: GLSL->HLSL, DXC path, SPIRV-Cross remap, f…
halx99 Jul 9, 2026
fee927d
migrate all cpp-tests GLSL shaders to HLSL 5.1; AXSLCC.cmake only sup…
halx99 Jul 9, 2026
ff10db7
remove orphan live2d_test.frag GLSL shader; all shaders compile clean
halx99 Jul 9, 2026
ef86c45
live2d-tests: restore live2d_test shaders as HLSL 5.1
halx99 Jul 9, 2026
9d383ee
docs: add HLSL migration guide and axmol HLSL 5.1 specification
halx99 Jul 9, 2026
d573eed
fix: restore AXSLC_TARGET_* feature parity with GLSL originals
halx99 Jul 9, 2026
95c0e79
Fix live2d shader
halx99 Jul 9, 2026
42b814d
Update AXSLCC.cmake
halx99 Jul 9, 2026
b9ff74e
Add comment for live2d runtime shaders
halx99 Jul 9, 2026
881d4c1
Refactor: AXSLCC_OUTPUT1 → AXSLCC_VARIANT_DEFINES, support N compile …
halx99 Jul 9, 2026
cbbb122
Docs: document AXSLCC_VARIANT_DEFINES multi-variant compilation (hlsl…
halx99 Jul 9, 2026
13ca8b1
feat: support --dxbc precompiled bytecode in RHI load and CMake build
halx99 Jul 10, 2026
00aab2c
build: update AXSLCC.cmake to new target names (vk/mtl/gl/gles)
halx99 Jul 10, 2026
c9e3584
refactor: unify bytecode storage on ShaderModule base, zero-copy for …
halx99 Jul 10, 2026
e64efae
refactor: move _blob/_nativeBlob from ShaderModule base to D3D11/D3D1…
halx99 Jul 10, 2026
f8a74f2
D3D11: bytecode fix
halx99 Jul 10, 2026
eec13a4
Improve
halx99 Jul 10, 2026
d49dad0
fixup
halx99 Jul 10, 2026
c8f6519
hlsl: update shader, cmake module, and spec docs
halx99 Jul 10, 2026
7c98be3
refactor: replace AXSLCC_KEEP_SOURCE with AXSLCC_FLAGS
halx99 Jul 12, 2026
b202424
Update hlsl spec
halx99 Jul 12, 2026
1a075c9
fixup
halx99 Jul 12, 2026
dccacf0
HLSL51: unified vertex semantics, mesh refactor, shader overhaul
halx99 Jul 13, 2026
9ea5964
HLSL51: standardize vertex semantics, add instancing macros, pin axsl…
halx99 Jul 14, 2026
eeb43cd
HLSL51: refine instancing macros, rename COLOR->COLOR0, add docs
halx99 Jul 14, 2026
7770aa5
HLSL51: gate Vulkan interop behind AX_ENABLE_VK, add msl-ios shader t…
halx99 Jul 14, 2026
0b389dc
HLSL51: rename _ps to _fs shaders, _vert/_frag to _vs/_fs vars, shade…
halx99 Jul 14, 2026
633fe01
HLSL51: fix ProgramManager shader var sync, fix axslcc 3.99 setup pat…
halx99 Jul 14, 2026
d0f2eea
HLSL51: remove unused cctype include from RHITypes.h
halx99 Jul 14, 2026
621ec18
Committing clang-format changes
axmol-bot Jul 14, 2026
cdd3ee0
Improve shader compilation error handling and fix HLSL shader semantics
halx99 Jul 14, 2026
ff60477
Add Metal sampler preset resolution in RenderContextMTL
halx99 Jul 14, 2026
6d7c05c
rhi: refactor sampler model into TextureOwned and ShaderPreset sources
halx99 Jul 15, 2026
5287ade
Fix position_vs.hlsl
halx99 Jul 15, 2026
e8f99be
Committing clang-format changes
axmol-bot Jul 15, 2026
5f68461
Update luabindings and docs/hlsl-spec.md
halx99 Jul 15, 2026
d5c7781
Fix win32 dll ci
halx99 Jul 15, 2026
803d6b4
Upgrade Scorewarrior sponsor tier to Corporate Diamond
halx99 Jul 15, 2026
1807908
doc update
halx99 Jul 15, 2026
ae9c193
hlsl51: unify shader input semantics and update docs
halx99 Jul 17, 2026
31c5272
Match axslcc-3.99.0-alpha2
halx99 Jul 17, 2026
0a7d44f
rhi: add custom sampler support across all backends
halx99 Jul 17, 2026
5ec2948
Improve setup devtools version match
halx99 Jul 17, 2026
ecc8d47
Committing clang-format changes
axmol-bot Jul 17, 2026
cd6d3b8
Fix win32 ci
halx99 Jul 18, 2026
11621c6
Fix ci for apple targets
halx99 Jul 18, 2026
37e7203
rhi: add texture-to-sampler binding resolution and misc fixes
halx99 Jul 18, 2026
e471d15
Update axslcc version
halx99 Jul 18, 2026
2edd065
Update hlsl-spec.md and hlsl-faq.md
halx99 Jul 18, 2026
365a95d
Committing clang-format changes
axmol-bot Jul 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -241,3 +241,5 @@ release_note_draft.txt

1k/.env
1k/llvm.sh

.mimo*
28 changes: 18 additions & 10 deletions 1k/1kiss.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -661,6 +661,10 @@ function find_prog($name, $path = $null, $mode = 'ONLY', $cmd = $null, $params =
$isRange = $verArr.Count -gt 1
$minimalVer = $verArr[0]
$preferredVer = $verArr[$isRange]
# strip pre-release suffix e.g. 3.99.0-rc1 -> 3.99.0
$stripSuffix = [regex]'\-[a-z0-9]+$'
$minimalVer = $stripSuffix.Replace($minimalVer, '')
$preferredVer = $stripSuffix.Replace($preferredVer, '')
if ($preferredVer.EndsWith('+')) {
$preferredVer = $preferredVer.TrimEnd('+')
if ($minimalVer.EndsWith('+')) { $minimalVer = $minimalVer.TrimEnd('+') }
Expand Down Expand Up @@ -710,8 +714,8 @@ function find_prog($name, $path = $null, $mode = 'ONLY', $cmd = $null, $params =
$verStr = "$($verInfo.Major).$($verInfo.Minor).$($verInfo.Build)"
}

# can match x.y.z-rc3 or x.y.z-65a239b
$matchInfo = [Regex]::Match($verStr, '(\d+\.)+(\*|\d+)(\-[a-z0-9]+)?')
# strip x.y.z-rc3 to x.y.z
$matchInfo = [Regex]::Match($verStr, '(\d+\.)+(\*|\d+)')
$foundVer = $matchInfo.Value
}
else {
Expand Down Expand Up @@ -1004,29 +1008,33 @@ function setup_python3() {
}

# setup axslcc, not add to path
# package layout: axslcc-<ver>-<os>-<arch>/axslcc (flat)
# expected layout: axslcc/bin/axslcc, axslcc/<license files>
function setup_axslcc() {
if (!$manifest['axslcc']) { return $null }
$axslcc_bin = Join-Path $install_prefix 'axslcc'
$axslcc_root = Join-Path $install_prefix 'axslcc'
$axslcc_bin = Join-Path $axslcc_root 'bin'
$axslcc_prog, $axslcc_ver = find_prog -name 'axslcc' -path $axslcc_bin -mode 'BOTH'
if ($axslcc_prog) {
return $axslcc_prog
}

$requiredVer = $manifest['axslcc']
$axslcc_prog = (Join-Path $axslcc_bin "axslcc$EXE_SUFFIX")
if ($1k.isfile($axslcc_prog)) {
$1k.del($axslcc_prog)
}

$pkg_url = devtool_url 'axslcc' $axslcc_ver
$pkg_url = devtool_url 'axslcc' $requiredVer
fetch_pkg $pkg_url -exrep "axslcc-$requiredVer-*=axslcc"

fetch_pkg $pkg_url -exrep "axslcc"

if ($1k.isfile($axslcc_prog)) {
$axslcc_prog, $axslcc_ver = find_prog -name 'axslcc' -path $axslcc_bin -mode 'BOTH' -silent $true
if ($axslcc_prog) {
$1k.println("Using axslcc: $axslcc_prog, version: $axslcc_ver")
return $axslcc_prog
}
else {
throw "Install axslcc fail"
}

throw "Install axslcc fail"
}

function setup_ninja() {
Expand Down
4 changes: 2 additions & 2 deletions 1k/build.profiles
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@

# --- region platfom:common

# The axmol shader compiler, legacy name is 'glslcc' before axmol-2.3.0
axslcc=3.6.0
# The Axmol HLSL-first cross-platform shader compiler
axslcc=3.99.0

# The cmake, @gradle @axmol-cmdline
# as latest as possible
Expand Down
2 changes: 1 addition & 1 deletion 3rdparty/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ if(ANDROID)
)
endif()

ax_add_3rd(fmt)
ax_add_3rd(fmt OPTIONS "FMT_MODULE OFF")
if (TARGET fmt-c)
set_target_properties(fmt-c PROPERTIES FOLDER "3rdparty")
endif()
Expand Down
19 changes: 14 additions & 5 deletions 3rdparty/openal/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1802,11 +1802,15 @@ else()
add_library(${IMPL_TARGET} SHARED)
if(CMAKE_VERSION GREATER_EQUAL 3.23)
target_sources(${IMPL_TARGET}
PRIVATE ${OPENAL_SRCS} ${ALC_SRCS} ${CORE_SRCS} ${RC_CONFIG}
PRIVATE FILE_SET internal_headers TYPE HEADERS
FILES ${OPENAL_HDRS} ${ALC_HDRS} ${CORE_HDRS}
PUBLIC FILE_SET public_headers TYPE HEADERS
BASE_DIRS "${OpenAL_SOURCE_DIR}/include" FILES ${TARGET_PUBLIC_HEADERS})
PRIVATE ${OPENAL_SRCS} ${ALC_SRCS} ${CORE_SRCS} ${RC_CONFIG})
# FILE_SET of type HEADERS is incompatible with FRAMEWORK targets in CMake >= 4.4
if(NOT (APPLE AND ALSOFT_OSX_FRAMEWORK))
target_sources(${IMPL_TARGET}
PRIVATE FILE_SET internal_headers TYPE HEADERS
FILES ${OPENAL_HDRS} ${ALC_HDRS} ${CORE_HDRS}
PUBLIC FILE_SET public_headers TYPE HEADERS
BASE_DIRS "${OpenAL_SOURCE_DIR}/include" FILES ${TARGET_PUBLIC_HEADERS})
endif()
# FIXME: Why can't I do this without CMake complaining that the private
# alsoft.common and alsoft.fmt libs aren't in some export set? Yet
# adding alsoft.core-modules as another lib that has the modules works
Expand Down Expand Up @@ -1882,6 +1886,9 @@ else()
endif()

set(_alsoft_bundle_id "org.openal-soft.openal")
# FILE_SET of type HEADERS is incompatible with FRAMEWORK targets in CMake >= 4.4,
# so use PUBLIC_HEADER and PRIVATE_HEADER properties instead
set(_alsoft_private_headers ${OPENAL_HDRS} ${ALC_HDRS} ${CORE_HDRS})
set_target_properties(${IMPL_TARGET} PROPERTIES
FRAMEWORK TRUE
FRAMEWORK_VERSION C
Expand All @@ -1899,7 +1906,9 @@ else()
XCODE_ATTRIBUTE_CONFIGURATION_BUILD_DIR "$(inherited)"
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "${_alsoft_bundle_id}"
PUBLIC_HEADER "${TARGET_PUBLIC_HEADERS}"
PRIVATE_HEADER "${_alsoft_private_headers}"
MACOSX_RPATH TRUE)
unset(_alsoft_private_headers)
endif()
endif()

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,11 @@ If you find **Axmol Engine** helpful, please consider donating in [https://axmol

## Sponsors

#### Platinum Sponsors
#### Corporate Diamond

<p align="left">
<a href="https://scorewarrior.com/?ad=axmol" target=_blank><img
src="https://cdn.prod.website-files.com/633da33305ac754156026dd8/63566f1edf5f0712f94f7f1b_sw-triangle-821890.svg" height="120"
src="https://cdn.prod.website-files.com/633da33305ac754156026dd8/63566f1edf5f0712f94f7f1b_sw-triangle-821890.svg" height="160"
/></a>
</p>

Expand All @@ -194,7 +194,7 @@ In order to see some of our community works, please check our Axmol Showcase: [M
## Reference links

- [1kiss](https://github.com/simdsoft/1kiss): A cross-platform one step build powershell script, with auto setup general dependent tools.
- [axslcc](https://github.com/axmolengine/axslcc): The axmol new shader workflow tool, forked from `glslcc`.
- [axslcc](https://github.com/axmolengine/axslcc): The Axmol v3 HLSL-first shader compiler and cross-platform shader workflow tool.
- [Official Cocos2d-x](https://github.com/cocos2d/cocos2d-x)

## Axmol Stats
Expand Down
6 changes: 3 additions & 3 deletions README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,10 +168,10 @@ Axmol 引擎在 Cocos2d-x v4.0 的基础上进行迭代和改进。现在速度

## Sponsors

#### Platinum Sponsors
#### Corporate Diamond
<p align="left">
<a href="https://scorewarrior.com/?ad=axmol" target=_blank><img
src="https://cdn.prod.website-files.com/633da33305ac754156026dd8/63566f1edf5f0712f94f7f1b_sw-triangle-821890.svg" height="120"
src="https://cdn.prod.website-files.com/633da33305ac754156026dd8/63566f1edf5f0712f94f7f1b_sw-triangle-821890.svg" height="160"
/></a>
</p>

Expand All @@ -194,7 +194,7 @@ Please visit: [https://axmol.dev/donate](https://axmol.dev/donate)
## 参考链接

- [1kiss](https://github.com/simdsoft/1kiss): 一个由 PowerShell 编写的能够自动配置各平台编译工具链的跨平台构建工具。
- [axslcc](https://github.com/axmolengine/axslcc): Axmol 引擎专用跨平台 Shader 编译器(fork 自 `glslcc`)
- [axslcc](https://github.com/axmolengine/axslcc): Axmol v3 的 HLSL-first 跨平台 shader 编译工具,为 Axmol RHI 提供统一 shader 工作流
- [Cocos2d-x](https://github.com/cocos2d/cocos2d-x):原 Cocos2d-x 官方引擎仓库。

## Axmol 活跃状态
Expand Down
10 changes: 5 additions & 5 deletions axmol/2d/ProgressTimer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,11 @@ rhi::ProgramState* initPipelineDesc(ax::CustomCommand& command,
// set custom vertexLayout according to V2F_T2F_C4F structure
VertexLayoutDesc desc = axvlm->allocateVertexLayoutDesc();
desc.startLayout(3);
desc.addAttrib("a_position", program->getVertexInputDesc(rhi::VertexInputKind::POSITION),
rhi::VertexElementType::FLOAT2, 0, false);
desc.addAttrib("a_texCoord", program->getVertexInputDesc(rhi::VertexInputKind::TEXCOORD),
rhi::VertexElementType::FLOAT2, offsetof(V2F_T2F_C4F, texCoord), false);
desc.addAttrib("a_color", program->getVertexInputDesc(rhi::VertexInputKind::COLOR), rhi::VertexElementType::FLOAT4,
desc.addAttrib(program->getVertexInputDesc(rhi::VertexSemantic::POSITION), rhi::VertexElementType::FLOAT2, 0,
false);
desc.addAttrib(program->getVertexInputDesc(rhi::VertexSemantic::TEXCOORD0), rhi::VertexElementType::FLOAT2,
offsetof(V2F_T2F_C4F, texCoord), false);
desc.addAttrib(program->getVertexInputDesc(rhi::VertexSemantic::COLOR0), rhi::VertexElementType::FLOAT4,
offsetof(V2F_T2F_C4F, color), false);
desc.endLayout();

Expand Down
64 changes: 32 additions & 32 deletions axmol/3d/Bundle3D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -257,21 +257,21 @@ bool Bundle3D::loadObj(MeshDatas& meshdatas,

if (mesh.positions.size())
{
attrib.vertexAttrib = shaderinfos::VertexKey::VERTEX_ATTRIB_POSITION;
attrib.vertexAttrib = MeshVertexAttribute::POSITION;
meshdata->attribs.emplace_back(attrib);
}
bool hasnormal = false, hastex = false;
if (mesh.normals.size())
{
hasnormal = true;
attrib.vertexAttrib = shaderinfos::VertexKey::VERTEX_ATTRIB_NORMAL;
attrib.vertexAttrib = MeshVertexAttribute::NORMAL;
meshdata->attribs.emplace_back(attrib);
}
if (mesh.texcoords.size())
{
hastex = true;
attrib.type = parseGLDataType("GL_FLOAT", 2);
attrib.vertexAttrib = shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD;
attrib.vertexAttrib = MeshVertexAttribute::TEXCOORD0;
meshdata->attribs.emplace_back(attrib);
}

Expand Down Expand Up @@ -513,29 +513,29 @@ bool Bundle3D::loadMeshDatasBinary_0_1(MeshDatas& meshdatas)
{
auto vUsage = _binaryReader.read<unsigned int>();
auto vSize = _binaryReader.read<unsigned int>();
shaderinfos::VertexKey usage;
MeshVertexAttribute usage;

MeshVertexAttrib meshVertexAttribute;
meshVertexAttribute.type = parseGLDataType("GL_FLOAT", vSize);
if (vUsage == VERTEX_ATTRIB_NORMAL)
{
usage = shaderinfos::VertexKey::VERTEX_ATTRIB_NORMAL;
usage = MeshVertexAttribute::NORMAL;
}
else if (vUsage == VERTEX_ATTRIB_BLEND_WEIGHT)
{
usage = shaderinfos::VertexKey::VERTEX_ATTRIB_BLEND_WEIGHT;
usage = MeshVertexAttribute::BLENDWEIGHT;
}
else if (vUsage == VERTEX_ATTRIB_BLEND_INDEX)
{
usage = shaderinfos::VertexKey::VERTEX_ATTRIB_BLEND_INDEX;
usage = MeshVertexAttribute::BLENDINDICES;
}
else if (vUsage == VERTEX_ATTRIB_POSITION)
{
usage = shaderinfos::VertexKey::VERTEX_ATTRIB_POSITION;
usage = MeshVertexAttribute::POSITION;
}
else if (vUsage == VERTEX_ATTRIB_TEX_COORD)
{
usage = shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD;
usage = MeshVertexAttribute::TEXCOORD0;
}
else
{
Expand Down Expand Up @@ -620,7 +620,7 @@ bool Bundle3D::loadMeshDatasBinary_0_2(MeshDatas& meshdatas)
for (unsigned int i = 0; i < attribSize; ++i)
{
unsigned int vUsage, vSize;
shaderinfos::VertexKey usage = shaderinfos::VertexKey::VERTEX_ATTRIB_ERROR;
MeshVertexAttribute usage = MeshVertexAttribute::INVALID;
if (_binaryReader.read_blob(vUsage) != 1 || _binaryReader.read_blob(vSize) != 1)
{
AXLOGW("warning: Failed to read meshdata: usage or size '{}'.", _path);
Expand All @@ -632,23 +632,23 @@ bool Bundle3D::loadMeshDatasBinary_0_2(MeshDatas& meshdatas)
meshVertexAttribute.type = parseGLDataType("GL_FLOAT", vSize);
if (vUsage == VERTEX_ATTRIB_NORMAL)
{
usage = shaderinfos::VertexKey::VERTEX_ATTRIB_NORMAL;
usage = MeshVertexAttribute::NORMAL;
}
else if (vUsage == VERTEX_ATTRIB_BLEND_WEIGHT)
{
usage = shaderinfos::VertexKey::VERTEX_ATTRIB_BLEND_WEIGHT;
usage = MeshVertexAttribute::BLENDWEIGHT;
}
else if (vUsage == VERTEX_ATTRIB_BLEND_INDEX)
{
usage = shaderinfos::VertexKey::VERTEX_ATTRIB_BLEND_INDEX;
usage = MeshVertexAttribute::BLENDINDICES;
}
else if (vUsage == VERTEX_ATTRIB_POSITION)
{
usage = shaderinfos::VertexKey::VERTEX_ATTRIB_POSITION;
usage = MeshVertexAttribute::POSITION;
}
else if (vUsage == VERTEX_ATTRIB_TEX_COORD)
{
usage = shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD;
usage = MeshVertexAttribute::TEXCOORD0;
}
meshVertexAttribute.vertexAttrib = usage;

Expand Down Expand Up @@ -2181,73 +2181,73 @@ NTextureData::Usage Bundle3D::parseGLTextureType(std::string_view str)
return NTextureData::Usage::Unknown;
}
}
shaderinfos::VertexKey Bundle3D::parseProgramAttribute(std::string_view str)
MeshVertexAttribute Bundle3D::parseProgramAttribute(std::string_view str)
{
if (str == "VERTEX_ATTRIB_POSITION"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_POSITION;
return MeshVertexAttribute::POSITION;
}
else if (str == "VERTEX_ATTRIB_COLOR"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_COLOR;
return MeshVertexAttribute::COLOR;
}
else if (str == "VERTEX_ATTRIB_TEX_COORD"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD;
return MeshVertexAttribute::TEXCOORD0;
}
else if (str == "VERTEX_ATTRIB_TEX_COORD1"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD1;
return MeshVertexAttribute::TEXCOORD1;
}
else if (str == "VERTEX_ATTRIB_TEX_COORD2"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD2;
return MeshVertexAttribute::TEXCOORD2;
}
else if (str == "VERTEX_ATTRIB_TEX_COORD3"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD3;
return MeshVertexAttribute::TEXCOORD3;
}
// comment out them
// else if (str == "VERTEX_ATTRIB_TEX_COORD4")
// {
// return shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD4;
// return MeshVertexAttribute::TEXCOORD4;
// }
// else if (str == "VERTEX_ATTRIB_TEX_COORD5")
// {
// return shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD5;
// return MeshVertexAttribute::TEXCOORD5;
// }
// else if (str == "VERTEX_ATTRIB_TEX_COORD6")
// {
// return shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD6;
// return MeshVertexAttribute::TEXCOORD6;
// }
// else if (str == "VERTEX_ATTRIB_TEX_COORD7")
// {
// return shaderinfos::VertexKey::VERTEX_ATTRIB_TEX_COORD7;
// return MeshVertexAttribute::TEXCOORD7;
// }
else if (str == "VERTEX_ATTRIB_NORMAL"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_NORMAL;
return MeshVertexAttribute::NORMAL;
}
else if (str == "VERTEX_ATTRIB_BLEND_WEIGHT"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_BLEND_WEIGHT;
return MeshVertexAttribute::BLENDWEIGHT;
}
else if (str == "VERTEX_ATTRIB_BLEND_INDEX"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_BLEND_INDEX;
return MeshVertexAttribute::BLENDINDICES;
}
else if (str == "VERTEX_ATTRIB_TANGENT"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_TANGENT;
return MeshVertexAttribute::TANGENT;
}
else if (str == "VERTEX_ATTRIB_BINORMAL"sv)
{
return shaderinfos::VertexKey::VERTEX_ATTRIB_BINORMAL;
return MeshVertexAttribute::BINORMAL;
}
else
{
AXASSERT(false, "Wrong Attribute type");
return shaderinfos::VertexKey::VERTEX_ATTRIB_ERROR;
return MeshVertexAttribute::INVALID;
}
}

Expand Down
2 changes: 1 addition & 1 deletion axmol/3d/Bundle3D.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ class AX_DLL Bundle3D
* get vertex attribute type
* @param str The type in string
*/
shaderinfos::VertexKey parseProgramAttribute(std::string_view str);
MeshVertexAttribute parseProgramAttribute(std::string_view str);

/*
* get model path
Expand Down
Loading