Commit Graph
100 Commits
Author SHA1 Message Date
yyc12345 7e7b21544d chore: update build script. 2024-11-04 14:58:53 +08:00
yyc12345 e72102496b fix: update YYCC dependency
- move EnumsHelper into YYCC because it is widely used.
- rename all calling to EnumsHelper due to this modification.
- add version checker in code to make sure that user use correct YYCC library to compile.
- modify some include syntax because the include directory layout changes of YYCC.
- update CMake script to resolve the bug that we can not export LibCmo (thanks doyaGu and BLumia).
2024-11-03 19:05:27 +08:00
yyc12345 73f1a1f829 fix: fix fatal layout issue about VxColor.
- fix wrong memory layout of VxColor.
2024-11-01 13:31:03 +08:00
yyc12345 33dc9a54be feat: finish BMapSharp
- basically finish BMapSharp bindings however done test does not cover all scenarios.
2024-11-01 11:13:05 +08:00
yyc12345 6eb95ddd1f feat: update BMapSharp
- finish BMMesh bindings.
- finish a half of BMMeshTrans bindings.
- use getGenericValue and setGenericValue for most bindings.
2024-11-01 10:48:45 +08:00
yyc12345 e8fedc8bff feat: update BMapSharp
- update virtools type defines in BMapSharp. expand its ctor for convenient usage.
- finish BMMaterial bindings.
- create a generic value getter setter for convenient calling.
- fix codegen error of BMapSharp (accident fallthrough for CKBYTE type and wrong marshal type for enum type).
2024-10-31 17:15:06 +08:00
yyc12345 74268d4ad4 feat: update BMapSharp
- finish BMTexture bindings and quater of BMMaterial.
- fix compile manual.
2024-10-30 15:41:17 +08:00
yyc12345 f7644319f0 doc: update build manual 2024-10-29 17:44:55 +08:00
yyc12345 73cda9f905 feat: update BMapSharp
- add struct assigner and iterator but still has bugs (struct padding issue)
- add function bindings for BM3dObject and BMGroup.
- add basic ctor and dtor for BMMeshTrans.
2024-10-29 15:12:00 +08:00
yyc12345 4d04b38d52 feat: continue improving BMapSharp.
- add BMFileWriter in BMapSharp.
2024-10-27 11:41:49 +08:00
yyc12345 623334f863 feat: update BMapSharp.
- update the function calling in BMapSharp.BMFileReader. (hope JIT can optimize my bad code served for beauty)
- remove outdated content in COMPILE.md
2024-10-24 16:39:11 +08:00
yyc12345 f781bcd63d doc: fix compile manual
- move compile infos into an individual file.
- remove outdated compile manual, use latest one instead.
2024-10-18 15:04:54 +08:00
yyc12345 b319e0fcb6 feat: finish basic function of BMapSharp.
- fix weird C sharp behavior about calling FreeNativeData without calling ManagedToNative, which cause segment fault.
- disable unhandled exception handler in debug mode for BMap.
- change all associated code involving these issues.
2024-10-05 11:58:25 +08:00
yyc12345 3566efa36a feat: update custom marshaler in BMapSharp 2024-10-04 21:45:04 +08:00
yyc12345 334580acdc feat: update BMapSharp code 2024-10-03 21:39:36 +08:00
yyc12345 2ce5203ac7 feat: update BMap bindings
- add testbench file in BMap bindings.
- reorganise BMap bindings code.
- write some BMapSharp binding code.
2024-10-02 13:33:32 +08:00
yyc12345 5e5eed03f5 feat: finish c sharp custom marshaler.
- Finish BMapStringArrayMarshaler but not test.
2024-09-21 22:01:25 +08:00
yyc12345 7c88b3614a fix: update BMap bindings
- send message in console if PyBMap fail to load native dynamic library. this is good for user experience.
- remove snippet from BMap bindings generator. We now insert generated code manually.
- fix C sharp code generation issue in BMap bidnings generator.
- add some content for BMapSharp.
2024-09-21 16:50:53 +08:00
yyc12345 8ef1c6e30a fix: fix linux build issue 2024-08-27 20:48:27 +08:00
yyc12345 85ff80cbf7 fix: fix Bmap build issue. add banner for Unvirt 2024-08-27 17:13:52 +08:00
yyc12345 65861143bf fix: fix issues
- restore some CKGlobals behavior because it will cause runtime exception.
- move some classes from CmdHelper to UnvirtContext to make CmdHelper more common to use.
- output warning string when fail to get utf8 or ordinary string.
2024-08-27 11:25:53 +08:00
yyc12345 3735a202f3 fix: fix Unvirt build issue, but it doesn't work 2024-08-26 21:28:13 +08:00
yyc12345 34015d2d1c refactor: finish refactor of CmdHelper of Unvirt 2024-08-26 12:24:09 +08:00
yyc12345 bd96f26cfd fix: fix CmdHelper but still not finished 2024-08-25 22:27:17 +08:00
yyc12345 0db8007fcb fix: update CmdHelper in Unvirt but not finished 2024-08-24 23:05:41 +08:00
yyc12345 88ce33c358 fix: fix build issue in Unvirt 2024-08-24 21:27:23 +08:00
yyc12345 d74b4645f0 fix: fix build issue in Unvirt and LibCmo
- fix build issue in Unvirt and LibCmo
- due to we use UTF8 string. the accessible value generator in EnumsMigration need to be changed at the same time.
- remove string helper in Unvirt because we no longer need it.
2024-08-23 17:38:45 +08:00
yyc12345 0447381896 fix: fix libcmo build issue 2024-08-23 11:28:49 +08:00
yyc12345 1028aad155 doc: add documentation
- add documentation for CKDefines, CKGlobals and VxMemoryMappedFile.
- fix build issue in VxMemoryMappedFile.
- add file size limitation in VxMemoryMappedFile. File whose size exceed the maximum value can not be opened.
2024-08-22 10:57:53 +08:00
yyc12345 a7c1028926 doc: add documentation
- add documentation for CKGlobals, VxMath (partly)
- Fix build issue in CKDefines, CKGlobals, VxMath.
- Bring libcmo exception in CKGlobals and VxMath for some illegal input.
2024-08-21 17:57:35 +08:00
yyc12345 f7708c28e0 doc: add documentation for VxTypes 2024-08-20 10:52:05 +08:00
yyc12345 35d508b1b9 doc: finish XTypes documentation 2024-08-19 10:43:30 +08:00
yyc12345 1483466211 doc: fix issue. add documentation.
- fix build issue in CKTypes
- add documentation for CKTypes, VTAll and VTImage.
2024-08-18 11:33:51 +08:00
yyc12345 9903b61cac fix: fix issues
- fix BMapBindings generator due to the rename of LIBCMO_EXPORT -> BMAP_EXPORT.
- fix relative path issue in Python scripts within CodeGen.
- remove all references to LIBCMO_PANIC. use exception instead to tell user they are fool.
- basically finish universal encoding tables. add lost encoding name.
2024-08-17 23:29:08 +08:00
yyc12345 e682a87d25 refactor: refactor project
- rename LIBCMO_DISABLE_COPY_MOVE -> YYCC_DEL_CLS_COPY_MOVE and LIBCMO_DEFAULT_COPY_MOVE -> YYCC_DEF_CLS_COPY_MOVE.
- fix Vector declaration generator. throw exception when operator[] face invalid index, instead of do fallback.
- rename VTAll.hpp -> VTInternal.hpp and VYUserAll -> VTAll.hpp for easy to understand.
- fix project name error in Doxygen template.
- replace all LIBCMO_OS_WIN32 to YYCC_OS == YYCC_OS_WINDOWS.
- fix some compile error (involving utf8 encoding) but not the final result.
- use correct way to include std-image library (use <> instead of "")
- finish documentation for VTUtils.hpp and VTEncoding.hpp.
2024-08-17 20:43:27 +08:00
yyc12345 f870d4dde3 refactor: update project
- add documentation CMake build script. re-organise document layout for future changes.
- move LIBCMO_EXPORT to BMap and rename it to BMAP_EXPORT because only BMap need to use this macro.
- fully refactor VTEncoding to make it more like Python
	- Now language name is platform independent.
	- Hide implementation detail as possible as I can.
	- Language mapping are still work in progress.
- add code gen for new added universal encoding feature to generate language name mapping in Windows and Iconv respectively.
- remove old code of CMake build script.
- update VTUtils for new requirement.
	- remove useless functions.
	- create LibCmo specific custom exception classes.
2024-08-16 22:07:23 +08:00
yyc12345 afa06339b2 chore: switch to CMake build system instead of native Visual Studio project 2024-08-15 22:20:51 +08:00
yyc12345 da575e42f5 fix: update csharp interop code generator.
- update csharp interop code generator to have short output result.
2024-08-15 19:11:27 +08:00
yyc12345 a2fb376231 feat: add csharp interop code generation but no test.
- add csharp interop code generation without testing.
- add annotation for bmap binding project.
- fix README.
2024-04-23 16:01:26 +08:00
yyc12345 8a1fc03965 do some preparation work
- establish BMapSharp project for future development.
- refactor EnumsMigration. add csharp code output for it.
- add README for VectorGen and modify other READMEs.
2024-04-22 14:15:27 +08:00
yyc12345 c03c80d938 ready for first release
- bump up license year.
- format some gitignore files.
- update PyBMap readme.
- create a distribution used folder and give a manual for it.
2024-01-22 14:57:40 +08:00
yyc12345 afd4abadbb fix bugs
- fix typing hint error in PyBMap
- remove UNKNOWN_PF in PixelFormat enum in PyBMap.virtools_type. because it is a fallback value and should not be used directly. so when I apply it to Blender plugin, it cause a error.
2024-01-08 10:54:14 +08:00
yyc12345 8ed7df659d add JPG and PNG image fmt support.
a file saving issue raised in BMap sub-project cause this change.
initially i do not want to add these ballance not supported image format. but for RawData saved image with PNG suffix will raise error when calling SaveImage()
so i add these to make sure all image can be saved.
2023-12-14 14:49:14 +08:00
yyc12345 92346dc81e add feature
- add exmaple cmake configure command in README.
- change BMap::Save interface to support compression and texture save opt switches.
- update PyBMap due to the change of BMap.
2023-12-03 22:50:36 +08:00
yyc12345 6296261532 resolve bmp alpha channel saving issue 2023-12-03 20:50:25 +08:00
yyc12345 b8b2368ef5 fix issues
- fix lifetime issue about python c callback function
- fix type hint in PyBMap
- fix formatter clamp issue in CKContext
2023-12-03 18:15:05 +08:00
yyc12345 a70e32a306 fix issues
- revert nullptr check for BMap::MeshTrans pointer getter.
- fix pointer return error of BMap::MeshTrans
- fix type hint error and variable name error in PyBMap
- fix CKMesh flag init value error
- improve empty material slots saving. add a nullptr entry if no slots to make sure virtools can load it.
2023-12-01 23:31:09 +08:00
yyc12345 74d8f02588 fix issues
- fix usage error of ckid getter in bmap wrapper.
- fix CKObject flag init value error.
- fix CKFileWriter writing empty object name error.
- regulate some statement.
2023-11-30 22:48:40 +08:00
yyc12345 279fa1eccb update code gen 2023-11-26 20:36:25 +08:00
yyc12345 562b44c7aa use different file name of BMap in PyBMap for different system 2023-11-16 21:11:36 +08:00
yyc12345 7c6dd463bd fix issues
- fix nullptr name assignment error on CKObject.
- remove slot check for CKTexture::GetFileName in BMap. return nullptr, not throw error when no slot to get file name.
2023-11-15 23:05:21 +08:00
yyc12345 d8b7ace53d expose lit mode interface in CKMesh.
- provide lit mode and wrap mode getter and setter in CKMesh.
- add lost flags setter in CKMesh.
- show lit mode and wrap mode data in Unvirt.
- add interface for lit mode in BMap, because some old Ballance map use lit mode to light objects.
- expose a raw c callback when creating bmap to allow user decide how the log output by themselves.
- change python bindings for BMap interface changes.
2023-11-15 21:47:58 +08:00
yyc12345 c55e334ead fix texture saving error 2023-11-10 14:58:07 +08:00
yyc12345 77bb3ce7d2 fix bmap python binding error 2023-11-10 12:23:03 +08:00
yyc12345 9b447733fb reorg PyBMap files. use correct import statement in module 2023-11-09 17:15:08 +08:00
yyc12345 29e9adac81 finish PyBMap bindings. (no serious debug) 2023-11-07 21:31:24 +08:00
yyc12345 aa8ec72df7 add json output for convenience about more lang bindings for bmap. 2023-11-07 15:55:07 +08:00
yyc12345 824497f638 finish BMesh part of python bmap bindings 2023-11-07 11:39:35 +08:00
yyc12345 cd2d408618 finish MeshTransition & BMTexture bindings in pybmap 2023-11-06 10:47:49 +08:00
yyc12345 a8bd6888cb add interface for python bmap binding 2023-11-05 21:06:32 +08:00
yyc12345 d6411fd907 fix fatal error about bmap. continue writing py bmap binding 2023-11-05 17:38:08 +08:00
yyc12345 fcd1fa81db rename BM3dEntity to BM3dObject in BMap. continue writing python bmao binding. fix doc 2023-11-05 10:44:11 +08:00
yyc12345 2000a6ad9b update bmap python binding 2023-11-04 21:58:58 +08:00
yyc12345 d754b2fb44 fix bmap binding generation 2023-11-03 10:43:06 +08:00
yyc12345 52c2d3f7e0 add basic python writer for bmap binding 2023-11-02 22:02:39 +08:00
yyc12345 bcd58af132 update gitignore 2023-11-02 20:27:57 +08:00
yyc12345 57e6f14067 finish recognization part of bmap binding 2023-11-02 12:40:50 +08:00
yyc12345 68bffefe5a write binding code 2023-11-02 10:53:16 +08:00
yyc12345 ef5d1760a3 add lexer and parser for export function binding generation 2023-11-01 10:31:17 +08:00
yyc12345 99383779b3 add first work of BMap binding 2023-10-31 10:49:18 +08:00
yyc12345 1d9bd09224 change bmap interface. update bmfile safe guard 2023-10-30 10:25:31 +08:00
yyc12345 9475e2abc5 fix x64 compile error. add arm support in IronPad 2023-10-29 12:36:03 +08:00
yyc12345 b402e8db8e add transparent column fixer code and finish bmap load/save 2023-10-29 10:27:35 +08:00
yyc12345 c7af11702f add some features in Unvirt
- add style [simple | full] command to allow simple display. current object list display take too much space.
- add search [obj | mgr] [plain | re] <text> command to allow user search object or manager list by substring or regex.
- add ls search <page> to browse the search result.
- set IronPad minidump dump type from full memory to normal.
- fix Unvirt ls command page count display error.
2023-10-28 18:17:53 +08:00
yyc12345 e4a67a50a5 update codegen 2023-10-12 20:52:22 +08:00
yyc12345 09fd67fb5e update CodeGen for suiting new requirement of Python 2023-10-12 10:42:06 +08:00
yyc12345 0071e001fd update codegen. add python code gen 2023-10-10 10:39:27 +08:00
yyc12345 d003b28b2e add material interface functions 2023-10-08 21:09:28 +08:00
yyc12345 2bd0c980b5 add mesh interface functions 2023-10-08 20:56:29 +08:00
yyc12345 0d114974ff add CKTexture interface functions 2023-10-08 15:28:00 +08:00
yyc12345 79516d7963 use new way to define interface funcs in BMap 2023-10-08 15:03:44 +08:00
yyc12345 754a281655 add LoadImage wrapper in CKTexture 2023-10-08 10:42:07 +08:00
yyc12345 812f32bfca update BMap code. finish CK3dEntity interface 2023-10-07 22:33:55 +08:00
yyc12345 b03806e3c9 update BMap.
- BMMeshConverter now use CK_ID as CKMaterial references.
- Add CKObject, CKGroup visitor.
2023-10-05 21:08:58 +08:00
yyc12345 9cb57adf6e update BMap design, use more safe design 2023-10-03 21:33:00 +08:00
yyc12345 4c8500e444 fix qualified name error in CKFileOthers. add some stupid wrapper for BMap 2023-10-02 20:54:31 +08:00
yyc12345 b477c468cd fix some saving result issue 2023-10-02 17:45:59 +08:00
yyc12345 db23c9c952 finish CKGroup writer 2023-10-02 11:38:14 +08:00
yyc12345 db6263cb53 finish CKMaterial writer. add lost SetClassId for each writer 2023-10-02 11:32:18 +08:00
yyc12345 05c48c21f9 finish CKObject and CK3dEntity writer 2023-10-02 11:04:00 +08:00
yyc12345 9aa8b2b961 finish CKMesh writer
- fix some writing issue.
- create a internal object adder in CKFileWriter shared by AddObject and Ctor(copy Reader).
2023-10-02 09:16:45 +08:00
yyc12345 92f4271124 finish CKMesh writing (no test)
- finish CKMesh writing function
- remove useless CKMesh functions: material channels, vertex weight and face mask.
2023-10-01 23:48:55 +08:00
yyc12345 ee4b621cac fix saving issue
- fix CKStateChunk resize memory error.
- fix wrong CKBitmapHandler free position in CKBitmapData writer.
- fix init value error of CKFileWriter::m_DisableAddingFile when copying from reader.
- fix ReadString, WriteString error in CKStateChunk (forget NULL terminal)
- change CKPathManager resolve path order. Resolve temp path first, then resources folder.
- fix mixdata combine error when writing CKTexture.
2023-09-30 16:01:39 +08:00
yyc12345 abea66d6f0 fix including file error in CKFile. update reader -> writer method 2023-09-30 14:24:37 +08:00
yyc12345 eedd9bdb55 finish CKtexture writer
- finish CKTexture writer
- add std::enable_if for CKStateChunk::ReadIdent&WriteIdent to limit it in enum type.
- fix error function calling in CKBitmapData writer.
- let CKTexture reader mor formal for mipmap.
- fix CKStateChunk ReadBuffer redirect guideline.
- add a stupid height and width getter for CKBitmapData to serve CKTexture using.
2023-09-30 11:51:04 +08:00
yyc12345 3195a9682f finish CKBitmapData writer.
- finish spec fmt image writer and raw bitmap writer.
- fix a possible fatal issue in ReadBuffer(). return nullptr simply rather than allocate a blank buf. otherwise the process of use nullptr to check result will be broken.
- add CanSaveAlpha() method in CKBitmapHandler.
2023-09-29 23:09:01 +08:00
yyc12345 1575186c69 finish CKBitmapData::DumpToChunk 2023-09-28 23:29:52 +08:00
yyc12345 b217da8fb8 fix some issue
- remove unnecessary macro in BMap, Unvirt and IronPad.
- add mtl slots display for mesh.
- fix potential nullptr issue in CKStateChunk buffer reader.
2023-09-26 20:51:16 +08:00
yyc12345 42b9ddaec6 fix fatal CKStateChunk read error. fix return statement in CKFile 2023-09-26 12:07:13 +08:00
yyc12345 0a168ac5cc fix cmake build issue. fix build type checker. rm IronPad windows header including under linux 2023-09-25 21:45:53 +08:00