Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release] v33.0 #7

Merged
merged 488 commits into from
Jun 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
488 commits
Select commit Hold shift + click to select a range
44d1936
[emapp] add static *ConstString methods and remove private utils from…
hkrn May 2, 2021
54df25a
[emapp] adjust validation severity
hkrn May 2, 2021
bcd5282
[emapp] add testing severity filter at name check
hkrn May 2, 2021
b3db081
[emapp] add material vertex indes count check
hkrn May 2, 2021
da17ab8
[emapp] add kMessageTypeLabelNotAssigned(Bone|Morph)Object
hkrn May 2, 2021
ff93846
[emapp] add bone and parent relation validation
hkrn May 2, 2021
b960ded
[emapp] clang-format
hkrn May 2, 2021
08fe6ec
[emapp] add constraint bone validation
hkrn May 2, 2021
0dcadf3
[emapp] remove buttons set from vertex/face panes
hkrn May 2, 2021
3f9bf5d
[emapp] restrict modifying material action with single selection
hkrn May 2, 2021
b324a5c
[emapp] add warning severity flag when model editing is enabled
hkrn May 2, 2021
c3f0305
[emapp] add check whether loading motion is camera/light or not
hkrn May 2, 2021
2f970ba
[emapp] disable delete/move model object actions when multiple select…
hkrn May 2, 2021
daa87b1
[emapp] add vertex from face reference validation
hkrn May 2, 2021
369d9ad
[emapp] add more select actions
hkrn May 2, 2021
d8dcef4
[emapp] remove unused phrases
hkrn May 2, 2021
a757cd3
[emapp] add "New Model" and "Convert to Model" action
hkrn May 3, 2021
7bb5d04
[emapp] add dynamic parent bone validation
hkrn May 3, 2021
e7227c4
[docs] add note for dynamic parent bone validation
hkrn May 3, 2021
c07f3de
[emapp] adjust translation from internal descriptive
hkrn May 3, 2021
3efaade
[emapp] replace to use CollapsingHeader as other uses
hkrn May 3, 2021
ef13470
[emapp] implement generating new model action
hkrn May 3, 2021
d0e519a
[emapp] move MenuItemTypeFileNewModel action as Project::newModel
hkrn May 3, 2021
718e304
[emapp] replace to use nanoem_language_type array
hkrn May 3, 2021
d829368
[emapp] implement provisional converting accessory to model
hkrn May 3, 2021
7636aa6
[emapp] fix a compile error due to lack of noexcept
hkrn May 3, 2021
61df6a1
[emapp] move bone/label name constants to inner model classes
hkrn May 3, 2021
53ef1cc
[emapp] add binding all vertices with root parent bone
hkrn May 3, 2021
9e6ffbe
[win32] replace to use same as FileUtils uses to prevent encoding error
hkrn May 4, 2021
0e26c0b
[win32] error should not be overriden by plugin decoder
hkrn May 4, 2021
7cba0f4
[emapp] more debug markers
hkrn May 4, 2021
7a5337f
[emapp] fixed a bug of blitting same viewport handle
hkrn May 4, 2021
a45b4b3
[docs] update for 33.0
hkrn May 4, 2021
4aa45c5
[emapp] clang-format
hkrn May 4, 2021
255b6cd
[emapp] fixed memory leaks bugs
hkrn May 4, 2021
77f0f4f
[macos] add "New Model" menu item
hkrn May 4, 2021
c0936a1
[emapp] display error modal dialog when new model action is failed
hkrn May 4, 2021
8f081de
[emapp] creating a new model now requires saving the project
hkrn May 4, 2021
da4edb8
[emapp] add line between system message and error message
hkrn May 4, 2021
2e17821
[emapp] remove creating user data to prevent memory leaks
hkrn May 4, 2021
b8a0114
[emapp] update built-in binary shaders
hkrn May 4, 2021
583891f
[emapp] fix camera angle and preparation
hkrn May 5, 2021
85990f9
[emapp] implement camera angle correction at loading project
hkrn May 5, 2021
540f1d3
[docs] update for 33.0
hkrn May 5, 2021
ae87ba3
[emapp] add experimental directional orientate bone state
hkrn May 5, 2021
797925b
[emapp] clang-format
hkrn May 5, 2021
3fa1792
[docs] update for 33.0
hkrn May 5, 2021
69469a1
[emapp] implement detaching viewport window
hkrn May 5, 2021
2db2176
[emapp] adjust timeline padding for viewport window detach
hkrn May 5, 2021
6838fe5
[emapp] add mnemonic keys (D, G) in project menu
hkrn May 5, 2021
94f3d69
[emapp] correct line shader uniform size on OpenGL
hkrn May 5, 2021
87c5932
[emapp] set force CPU skinning at model editing
hkrn May 5, 2021
3d4dd9a
[emapp] fixed a bug rebuilding vertex buffer may not work properly
hkrn May 6, 2021
d7303f7
[emapp] rename mode property to simulationMode in PhysicsEngine
hkrn May 6, 2021
ada8bfb
[emapp] add saving physics simulation mode and grid visible in projec…
hkrn May 6, 2021
8645533
[emapp] remove redundant saving physics simulation mode from Capturin…
hkrn May 6, 2021
3a4d709
[emapp] perform saving/restoring state with ILazyExecutionCommand
hkrn May 6, 2021
14f987b
[docs] update for 33.0
hkrn May 6, 2021
48a1708
[emapp] update for 33.0
hkrn May 6, 2021
d17892b
[macOS] fix compile error
hkrn May 6, 2021
a8b4426
[emapp] clang-format
hkrn May 6, 2021
0a7fffe
[emapp] add diagnostics support for PMM
hkrn May 6, 2021
99ae52a
[sandbox] fix build failure
hkrn May 6, 2021
b1452d0
[emapp] check diagnostics object is not null
hkrn May 6, 2021
46a5563
[emapp] add drawing vertex normal option
hkrn May 6, 2021
af690a1
[emapp] fix memory leaks when project cannot be loaded properly
hkrn May 6, 2021
75055ca
[emapp] implement plot24 for WaveFormPanelDrawer
hkrn May 6, 2021
036b2ce
[emapp] prevent overread of audio buffer
hkrn May 6, 2021
33bbe4a
[emapp] clang-format
hkrn May 6, 2021
db27a8f
[plugin] fixed a bug decoding error occurs when both audio/video exists
hkrn May 6, 2021
9b3e29c
[emapp] fixed a bug drawing background video with effect doesn't work…
hkrn May 7, 2021
5887af9
[cmake] add CHQX decoder option to ffmpeg
hkrn May 7, 2021
a894f79
[win32] fixed a bug video URI is empty at saving project
hkrn May 7, 2021
7244ac7
[docs] update for 33.0
hkrn May 7, 2021
4895b54
[emapp] correct calculation of waveform offset
hkrn May 7, 2021
64dc139
[docs] update for 33.0
hkrn May 7, 2021
fa197da
[emapp] change all* methods in Project to pointers array as possible
hkrn May 7, 2021
c46d9ed
[emapp] add selection to morphs buttons
hkrn May 8, 2021
d45cf6c
[emapp] fix build failure
hkrn May 8, 2021
159e2ad
[emapp] clang-format
hkrn May 8, 2021
e12440b
[emapp] add more toggle buttons
hkrn May 8, 2021
5f67e02
[nanoem] constraint object should reset bone references
hkrn May 8, 2021
e8b5112
[nanoem] add an API of removing constraint object from bone
hkrn May 8, 2021
91b6590
[emapp] add slider/drag with disable to prevent action while playing
hkrn May 8, 2021
9855a8e
[emapp] interpolation dialog now do nothing while playing
hkrn May 8, 2021
b15c7fa
[emapp] cleanup bone combobox and add setting axis actions
hkrn May 8, 2021
cc85731
[emapp] detach UVEditDialog from ModelEditCommandDialog
hkrn May 8, 2021
66e5bbd
[emapp] add assign operator of Error
hkrn May 9, 2021
5441df8
[emapp] reduce warnings
hkrn May 9, 2021
adf88b1
[emapp] add translation of "Display UV Mesh"
hkrn May 9, 2021
5bc96f8
[emapp] implement clearing textures
hkrn May 9, 2021
10b7796
[emapp] fixed a bug setting texture will not found
hkrn May 9, 2021
b7d4408
[emapp] add camera/light section to ModelEditCommandDialog
hkrn May 9, 2021
e978205
[emapp] split loading and applying from BindPose
hkrn May 9, 2021
1c19ed6
[emapp] clang-format
hkrn May 9, 2021
92e2679
[emapp] move BaseSetTextureCallback into anonymous namespace
hkrn May 9, 2021
4bedee6
[emapp] add ScopedMutableMorph* with initial creation
hkrn May 9, 2021
e78b628
[emapp] forgot to add base destructor
hkrn May 9, 2021
01766c0
[emapp] move creating model object actions from selection
hkrn May 9, 2021
c9adfb0
[docs] update for 33.0
hkrn May 9, 2021
986a593
[dependencies] add tinyobjloader-c as dependency
hkrn May 9, 2021
1c26ab3
[emapp] add destroy API to handle project state destruction properly
hkrn May 9, 2021
8301840
[emapp] fix build on windows with 32bit
hkrn May 9, 2021
3bf6549
[emapp] add check restoring state is same project
hkrn May 9, 2021
375dd12
[sandbox] rework transformer
hkrn May 10, 2021
4afd9d8
[emapp] implement loading obj file via tinyobjloader-c
hkrn May 11, 2021
4e9a334
[sandbox] fix double free bug
hkrn May 11, 2021
b5fe2ac
[emapp] add validation of model name and comment
hkrn May 11, 2021
368419c
[emapp] clang-format
hkrn May 11, 2021
ca5ae71
[emapp] adjust model parameter dialog layout
hkrn May 12, 2021
c3fc203
[emapp] add resetting name using resetLanguage
hkrn May 12, 2021
e3ee82e
[emapp] add Create(StagingBone|BoneMorphFromPose)Command
hkrn May 12, 2021
bdbb66f
[emapp] fixed a bug skin deformer doesn't work property when bone cha…
hkrn May 12, 2021
79a2ccf
[emapp] rename to CreateBoneAsStagingParentCommand
hkrn May 12, 2021
99b044a
[emapp] correct moving model object behavior
hkrn May 13, 2021
223b4b1
[win32] destroying output buffer view explicitly
hkrn May 13, 2021
2db7d92
[emapp] add CreateBoneAsStagingChildCommand
hkrn May 13, 2021
78e6fbd
[emapp] prohibit changing model while model editing is active
hkrn May 13, 2021
51c7020
[emapp] clang-format
hkrn May 14, 2021
697eb0d
[emapp] add menu bar to model parameter dialog and more actions
hkrn May 15, 2021
adcfa98
[emapp] disable PMX 2.1 features when PMX version is 2.0
hkrn May 15, 2021
449aa59
[emapp] forgot to strip mnemonic in preference dialog
hkrn May 15, 2021
f79643b
[emapp] prohibit changing language when model editing is enabled to p…
hkrn May 15, 2021
6bb9088
[docs] update for 33.0
hkrn May 15, 2021
005a46c
[emapp] add CreateBoneAsDestinationCommand
hkrn May 15, 2021
13731dd
[emapp] add CreateIntermediateJointFromTwoRigidBodiesCommand
hkrn May 15, 2021
45dbc54
[emapp] apply partial translations to ModelEditCommandDialog
hkrn May 15, 2021
9e222b7
[emapp] correct moving bones/vertices behavior with GizmoController
hkrn May 15, 2021
be1edc3
[emapp] correct moving rigidbody/vertex behavior with GizmoController
hkrn May 15, 2021
9a4d8f6
[emapp] add translation
hkrn May 16, 2021
9031dec
[emapp] add model version selection
hkrn May 16, 2021
2e35bb1
[emapp] add measure tab and TransformModelCommand
hkrn May 16, 2021
0560466
[emapp] fix build failure
hkrn May 16, 2021
0e5a02a
[emapp] clang-format
hkrn May 16, 2021
3b3eee6
[emapp] forgot to call performAllBonesTransform
hkrn May 16, 2021
8f2a256
[emapp] detached TransformModelCommand
hkrn May 16, 2021
f10d07b
[emapp] detached UndoCommand as LazyPushUndoCommand
hkrn May 16, 2021
8bfb36f
[docs] update for 33.0
hkrn May 16, 2021
296f7a8
[emapp] add CreateVertexMorphFromModelCommand
hkrn May 17, 2021
5b6ce8b
[emapp] add CopyMaterialFromModelCommand
hkrn May 17, 2021
e9eec35
[emapp] forgot to create and bind model::Mateiral
hkrn May 17, 2021
0acf6a4
[emapp] implement undo of MoveMaterial(Up|Down)Command
hkrn May 17, 2021
79243aa
[emapp] prevent unexpected softbody behavior
hkrn May 18, 2021
3464759
[emapp] reduce warnings
hkrn May 18, 2021
a5654cf
[macOS] ensure fileURI is canonicalized
hkrn May 18, 2021
393d101
[emapp] implement undo of DeleteMaterialCommand
hkrn May 18, 2021
c6de21c
[emapp] add common VertexIndexList type and use it
hkrn May 19, 2021
d4e13bf
[sdk] add softbody selection and model object masking API
hkrn May 19, 2021
481e62c
[emapp] add calling of ABI 2.1
hkrn May 19, 2021
bbbf88b
[emapp] add isEditingMasked to model::Material
hkrn May 19, 2021
6a5f453
[emapp] fix build failure
hkrn May 19, 2021
6d86f81
[emapp] add resetting measure state
hkrn May 19, 2021
656c969
[emapp] add CreateMaterialCommand
hkrn May 20, 2021
a5aa3bb
[emapp] fix moving material vertex indices behavior
hkrn May 20, 2021
72809af
[emapp] implement CircleSelector
hkrn May 22, 2021
5f53777
[emapp] apply circle selection support
hkrn May 22, 2021
749fd1a
[emapp] add MergeMaterialCommand
hkrn May 22, 2021
88dc3a3
[emapp] ScopedMutableModel now takes status pointer
hkrn May 22, 2021
a7ad7d7
[emapp] add material selection from vertices/faces action
hkrn May 22, 2021
311279c
[emapp] aggregate vertex type selection
hkrn May 22, 2021
63ae43f
[docs] move action to menu section and add missing descriptions
hkrn May 22, 2021
99b8a58
[emapp] add model edit menu title translation
hkrn May 23, 2021
df00ddd
[docs] add measure tab description
hkrn May 23, 2021
94c3477
[emapp] shrink hovered model object to bone only
hkrn May 23, 2021
7e2c2e6
[emapp] rename drawHardwareMonitor to drawPerformanceMonitor
hkrn May 23, 2021
4b2450f
[emapp] rename member variables for clarify
hkrn May 23, 2021
5721000
[emapp] add more translations
hkrn May 23, 2021
e76f15a
[emapp] more translations
hkrn May 23, 2021
28dde7f
[emapp] rename member variables
hkrn May 23, 2021
6f7753d
[emapp] add error when model motion is loading without active model
hkrn May 23, 2021
b8338a7
[emapp] add test of missing bones/morphs at loading model motion
hkrn May 23, 2021
5973119
[emapp] clang-format
hkrn May 23, 2021
e1bccdc
[emapp] add deleting model object states
hkrn May 24, 2021
5073029
[nanoem] implement missing applying change model objects
hkrn May 24, 2021
1bb62e7
[win32] fixed a bug custom save dialog doesn't work properly
hkrn May 24, 2021
8654aa6
[emapp] implement weight transfer feature
hkrn May 25, 2021
435d169
[emapp] make m_applicationPtr in BaseNonModalDialogWindow private
hkrn May 25, 2021
6a9be14
[emapp] forgot to add NULL terminator
hkrn May 25, 2021
24c1839
[nanoem] remove unused variable
hkrn May 25, 2021
9b2d17d
[emapp] clang-format
hkrn May 25, 2021
2c13724
[emapp] integrate model edit command to ImGuiWindow
hkrn May 26, 2021
9eeff1b
[nanoem] correct spelling function name
hkrn May 27, 2021
4e4b6d6
[emapp] reduce using const_cast
hkrn May 27, 2021
093e79d
[emapp] add AddBoneCommand to make undo-able
hkrn May 27, 2021
fae6ef9
[emapp] move DrawType in Project to IState
hkrn May 28, 2021
dac0510
[emapp] add model::IGizmo and model::IVertexWeightBrush
hkrn May 29, 2021
72b1ed1
[dependencies] upgrade protobuf-c to 1.4.0
hkrn May 29, 2021
6e4e28d
[emapp] provisional implementation of painting vertex weights
hkrn May 29, 2021
4f12138
[emapp] update translations
hkrn May 29, 2021
cf46975
[emapp] set gray as base vertex weight color
hkrn May 29, 2021
61888ce
[emapp] add batch change model object panel
hkrn May 30, 2021
7e29206
[emapp] move implementation to VertexWeightBrush from PaintVertexWeig…
hkrn May 30, 2021
9d803f5
[emapp] add forgotten paint method
hkrn May 30, 2021
9004006
[emapp] replace argument of Project with Model
hkrn May 30, 2021
7492c53
[emapp] add PaintVertexWeightCommand
hkrn May 30, 2021
b11fa9d
[docs] update for 33.0
hkrn May 30, 2021
402b337
[emapp] add batch model object commands
hkrn May 30, 2021
541f3aa
[emapp] add undo stack for model editing
hkrn May 31, 2021
125911a
[emapp] replace to use pointer
hkrn Jun 1, 2021
b17ed4b
[emapp] implemtn batch model object changes
hkrn Jun 1, 2021
8f04abc
[emapp] clang-format
hkrn Jun 1, 2021
6e6f153
[dependencies] upgrade glslang/spirv-cross
hkrn Jun 2, 2021
56121cf
[dependencies] upgrade sentry-native to 0.4.9
hkrn Jun 2, 2021
4deea9a
[fx9] fix build failure
hkrn Jun 2, 2021
8627bc0
[docs] add batch editing model objects note
hkrn Jun 2, 2021
705437a
[plugin] add ModelIOSetEditingModeEnabled
hkrn Jun 2, 2021
3521b04
[plugin] implement additional API from 2.1
hkrn Jun 2, 2021
a7b6b4c
[emapp] disable model/motion plugins when model editing is enabled
hkrn Jun 3, 2021
97b3d5a
[emapp] reimplement UVA selection and batch vertex bone settings
hkrn Jun 3, 2021
ddb8158
[emapp] add generating primitive dialogs
hkrn Jun 3, 2021
2e49056
[emapp] rename VertexWeightBrush to VertexWeightPainter and make owned
hkrn Jun 3, 2021
916870c
[emapp] generating primitive now works provisionally
hkrn Jun 4, 2021
98e1d64
[cmake] remove linking glslang's libraries no longer exists
hkrn Jun 4, 2021
8a888b5
[emapp] set PAR_SHAPES_T uint32_t
hkrn Jun 5, 2021
c9002a9
[emapp] add cylinder/sphere primitive generation and translation
hkrn Jun 5, 2021
9e2d4ce
[emapp] revert 519d2807b8855909f86c19d4cb6dce8f5566b580 partially
hkrn Jun 5, 2021
18e8095
[docs] tweaks of README
hkrn Jun 5, 2021
07a5fca
[emapp] implement backup model data before editing model mode
hkrn Jun 5, 2021
62f60ff
[emapp] add recording undo command name
hkrn Jun 5, 2021
6630ff5
[win32] implement confirm saving project dialog before exporting imag…
hkrn Jun 5, 2021
5b7ee51
[emapp] prohibit opening model dialog without saving project
hkrn Jun 5, 2021
2d4012d
[emapp] relaxed dirty check and loaded/saved model dirty state should…
hkrn Jun 5, 2021
a87e4a8
[emapp] implement saving edited model at dialog destruction
hkrn Jun 5, 2021
2c25e2a
[docs] add missing descriptions of model editing feature
hkrn Jun 5, 2021
35a6973
[emapp] implement symmetric bone/rigidbody/joint selection
hkrn Jun 5, 2021
b0c01fd
[emapp] rename reverse to symmetric
hkrn Jun 5, 2021
b3f0d70
[emapp] move drawing model edit menubar into viewport
hkrn Jun 5, 2021
cc95ff9
[emapp] integrate drawing primitive 2D into ImGuiWindow
hkrn Jun 6, 2021
11fe054
[emapp] clang-format
hkrn Jun 6, 2021
bb89056
[emapp] recalculate pivot matrix at symmetric selection
hkrn Jun 6, 2021
eaf76d0
[emapp] prefer to use canonicalName rather than name
hkrn Jun 6, 2021
7787bc5
[docs] add inner links of model/motion plugin
hkrn Jun 6, 2021
c577e7c
[emapp] implemnt showing only target bone connection and local axes
hkrn Jun 6, 2021
64756a4
[emapp] forgot to remove override modifier
hkrn Jun 6, 2021
f166194
[emapp] add icon at showing error dialog
hkrn Jun 6, 2021
7842987
[emapp] replace to use CreateDragged(Parent|Target)BoneCommand
hkrn Jun 6, 2021
ea5da25
[emapp] disable material duplication menu action
hkrn Jun 6, 2021
b1b8815
[docs] add release date of 31.5.0
hkrn Jun 7, 2021
ba9b46c
[docs] update for 33.0
hkrn Jun 7, 2021
680540e
[emapp] clang-format
hkrn Jun 7, 2021
5dae764
[docs] update images for 33.0
hkrn Jun 7, 2021
1faa994
[emapp] implement base brush for vertex painter
hkrn Jun 8, 2021
769e94e
[emapp] add translation of "Collision Group/Mask"
hkrn Jun 9, 2021
f042772
[emapp] correct base brush behavior and check masking vertex state
hkrn Jun 9, 2021
d2e73aa
[emapp] reduce warnings
hkrn Jun 9, 2021
618e10d
[emapp] memory allocation at once
hkrn Jun 9, 2021
1bb8710
[emapp] add target model name to motion diagnostics message
hkrn Jun 9, 2021
b7d8463
[emapp] clang-format
hkrn Jun 9, 2021
5e81833
[emapp] fix build failure
hkrn Jun 10, 2021
29ab961
[emapp] update binaries
hkrn Jun 10, 2021
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
  •  
  •  
  •  
9 changes: 6 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,12 @@
[submodule "dependencies/libsoundio"]
path = dependencies/libsoundio
url = https://github.com/andrewrk/libsoundio
[submodule "dependencies/nativefiledialog"]
path = dependencies/nativefiledialog
url = https://github.com/mlabbe/nativefiledialog
[submodule "dependencies/tbb"]
path = dependencies/tbb
url = https://github.com/wjakob/tbb.git
[submodule "dependencies/imguifiledialog"]
path = dependencies/imguifiledialog
url = https://github.com/aiekick/ImGuiFileDialog
[submodule "dependencies/tinyobjloader-c"]
path = dependencies/tinyobjloader-c
url = https://github.com/syoyo/tinyobjloader-c
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ option(NANOEM_ENABLE_DEBUG_ALLOCATOR "Enable building debug memory allocator" OF
option(NANOEM_ENABLE_DEBUG_LABEL "Enable building nanoem with debug labels." OFF)
option(NANOEM_ENABLE_GLFW "Enable GLFW based application option." OFF)
option(NANOEM_ENABLE_IMGUI_INDEX32 "Enable building ImGui with 32bit indices support" ON)
option(NANOEM_ENABLE_IMGUI_FILE_DIALOG "Enable building ImGuiFileDialog (https://github.com/aiekick/ImGuiFileDialog) option" OFF)
option(NANOEM_ENABLE_LTO "Enable Link Time Optimization when clang is used." OFF)
option(NANOEM_ENABLE_MIMALLOC "Enable mimalloc as allocator" OFF)
option(NANOEM_ENABLE_MSAN "Enable clang/gcc MSan (memory sanitizer) option." OFF)
Expand Down
18 changes: 13 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,40 @@

[![Build Status](https://github.com/hkrn/nanoem/workflows/CI/badge.svg)](https://github.com/hkrn/nanoem/actions) [![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-blue.svg)](https://opensource.org/licenses/MPL-2.0) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

nanoem is an MMD (MikuMikuDance) like application mainly built for OSX.
nanoem is an [MMD (MikuMikuDance)](https://sites.google.com/view/vpvp/) compatible implementation and its like application mainly built for macOS.

- [Binary Distribution](https://bowlroll.net/file/71328)
- [Usage Manual](https://nanoem.readthedocs.io)
- [Binary Distribution of macOS](https://bowlroll.net/file/71328)
- [Binary Distribution of Windows](https://bowlroll.net/file/122592)
- [Usage Manual](https://nanoem.readthedocs.io)

## How to build?

### Prerequisites

- [cmake](https://cmake.org) (> 3.5)
- [cmake](https://cmake.org) (>= 3.5)
- C++14 compliant compiler
- confirmed on Clang and Visual Studio 2017
- [git](https://git-scm.com)
- [ninja-build](https://ninja-build.org/)
- Optional but recommend
- Optional but recommend on macOS/Linux

### Minimum build instruction

See also [GitHub Action Workflow](.github/workflows/main.yml).

```bash
git submodule update --init --recurse

# needs setting NANOEM_TARGET_COMPILER explicitly when the compiler is clang (default is gcc on Linux)
export NANOEM_TARGET_COMPILER=clang
cmake -P scripts/build.cmake
mkdir out
cd out
cmake -G Ninja ..
cmake --build .

# OpenGL 3.3 Core Profile or higher is required to run on Linux
cd sapp && ./nanoem
```

## Architecture
Expand Down
11 changes: 1 addition & 10 deletions dependencies/fx9/cmake/common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -30,23 +30,18 @@ endfunction()

# glslang
fx9_cmake_get_install_path("glslang" GLSLANG_BASE_PATH GLSLANG_INSTALL_PATH_DEBUG GLSLANG_INSTALL_PATH_RELEASE)
find_library(GLSLANG_GENERICCODEGEN_LIBRARY_DEBUG NAMES GenericCodeGend GenericCodeGen PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_DEBUG} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_GENERICCODEGEN_LIBRARY_RELEASE NAMES GenericCodeGen PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_RELEASE} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_GLSLANG_LIBRARY_DEBUG NAMES glslangd glslang PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_DEBUG} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_GLSLANG_LIBRARY_RELEASE NAMES glslang PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_RELEASE} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_HLSL_LIBRARY_DEBUG NAMES HLSLd HLSL PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_DEBUG} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_HLSL_LIBRARY_RELEASE NAMES HLSL PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_RELEASE} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_MACHINEINDEPENDENT_LIBRARY_DEBUG NAMES MachineIndependentd MachineIndependent PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_DEBUG} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_MACHINEINDEPENDENT_LIBRARY_RELEASE NAMES MachineIndependent PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_RELEASE} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_OGLCOMPILER_LIBRARY_DEBUG NAMES OGLCompilerd OGLCompiler PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_DEBUG} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_OGLCOMPILER_LIBRARY_RELEASE NAMES OGLCompiler PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_RELEASE} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_OSDEPENDENT_LIBRARY_DEBUG NAMES OSDependentd OSDependent PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_DEBUG} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_OSDEPENDENT_LIBRARY_RELEASE NAMES OSDependent PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_RELEASE} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_SPIRV_LIBRARY_DEBUG NAMES SPIRVd SPIRV PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_DEBUG} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(GLSLANG_SPIRV_LIBRARY_RELEASE NAMES SPIRV PATH_SUFFIXES lib PATHS ${GLSLANG_INSTALL_PATH_RELEASE} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
mark_as_advanced(GLSLANG_OSDEPENDENT_LIBRARY_DEBUG GLSLANG_HLSL_LIBRARY_DEBUG GLSLANG_OGLCOMPILER_LIBRARY_DEBUG GLSLANG_SPIRV_LIBRARY_DEBUG GLSLANG_GLSLANG_LIBRARY_DEBUG
GLSLANG_OSDEPENDENT_LIBRARY_RELEASE GLSLANG_HLSL_LIBRARY_RELEASE GLSLANG_OGLCOMPILER_LIBRARY_RELEASE GLSLANG_SPIRV_LIBRARY_RELEASE GLSLANG_GLSLANG_LIBRARY_RELEASE
GLSLANG_GENERICCODEGEN_LIBRARY_DEBUG GLSLANG_GENERICCODEGEN_LIBRARY_RELEASE GLSLANG_MACHINEINDEPENDENT_LIBRARY_DEBUG GLSLANG_MACHINEINDEPENDENT_LIBRARY_RELEASE)
GLSLANG_OSDEPENDENT_LIBRARY_RELEASE GLSLANG_HLSL_LIBRARY_RELEASE GLSLANG_OGLCOMPILER_LIBRARY_RELEASE GLSLANG_SPIRV_LIBRARY_RELEASE GLSLANG_GLSLANG_LIBRARY_RELEASE)

# spirv-cross
fx9_cmake_get_install_path("spirv-cross" SPIRV_CROSS_BASE_PATH SPIRV_CROSS_INSTALL_PATH_DEBUG SPIRV_CROSS_INSTALL_PATH_RELEASE)
Expand Down Expand Up @@ -105,8 +100,6 @@ target_link_libraries(fx9 fx9_protobuf
optimized ${GLSLANG_HLSL_LIBRARY_RELEASE}
optimized ${GLSLANG_OSDEPENDENT_LIBRARY_RELEASE}
optimized ${GLSLANG_GLSLANG_LIBRARY_RELEASE}
optimized ${GLSLANG_GENERICCODEGEN_LIBRARY_RELEASE}
optimized ${GLSLANG_MACHINEINDEPENDENT_LIBRARY_RELEASE}
optimized ${SPIRV_CROSS_CORE_LIBRARY_RELEASE}
optimized ${SPIRV_CROSS_CPP_LIBRARY_RELEASE}
optimized ${SPIRV_CROSS_GLSL_LIBRARY_RELEASE}
Expand All @@ -117,8 +110,6 @@ target_link_libraries(fx9 fx9_protobuf
debug ${GLSLANG_HLSL_LIBRARY_DEBUG}
debug ${GLSLANG_OSDEPENDENT_LIBRARY_DEBUG}
debug ${GLSLANG_GLSLANG_LIBRARY_DEBUG}
debug ${GLSLANG_GENERICCODEGEN_LIBRARY_DEBUG}
debug ${GLSLANG_MACHINEINDEPENDENT_LIBRARY_DEBUG}
debug ${SPIRV_CROSS_CORE_LIBRARY_DEBUG}
debug ${SPIRV_CROSS_CPP_LIBRARY_DEBUG}
debug ${SPIRV_CROSS_GLSL_LIBRARY_DEBUG}
Expand Down
6 changes: 3 additions & 3 deletions dependencies/fx9/include/fx9/Parser.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@

/* GLSLang */
#define ENABLE_HLSL
#include "glslang/HLSL/hlslParseHelper.h"
#include "glslang/HLSL/hlslParseables.h"
#include "glslang/HLSL/hlslScanContext.h"
#include "hlsl/hlslParseHelper.h"
#include "hlsl/hlslParseables.h"
#include "hlsl/hlslScanContext.h"

namespace fx9 {

Expand Down
10 changes: 5 additions & 5 deletions dependencies/fx9/sokol.cc
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ struct Main {
if (succeeded) {
bool found = false;
for (int i = SG_MAX_SHADERSTAGE_IMAGES - 1; i >= 0; i--) {
const sg_image_type type = images[i].type;
const sg_image_type type = images[i].image_type;
if (!found && type != _SG_IMAGETYPE_DEFAULT) {
found = true;
}
Expand Down Expand Up @@ -88,8 +88,8 @@ struct Main {
desc.source = shader->msl;
break;
case FX9__EFFECT__SHADER__BODY_SPIRV:
desc.byte_code = shader->spirv.data;
desc.byte_code_size = shader->spirv.len;
desc.bytecode.ptr = shader->spirv.data;
desc.bytecode.size = shader->spirv.len;
break;
default:
break;
Expand Down Expand Up @@ -268,8 +268,8 @@ struct Main {
id.height = 1;
id.pixel_format = SG_PIXELFORMAT_RGBA8;
uint32_t pixel = 0;
id.content.subimage[0][0].ptr = &pixel;
id.content.subimage[0][0].size = sizeof(pixel);
id.data.subimage[0][0].ptr = &pixel;
id.data.subimage[0][0].size = sizeof(pixel);
sg_image ih = sg_make_image(&id);
for (int i = 0; i < SG_MAX_SHADERSTAGE_IMAGES; i++) {
if (sd.fs.images[i].name) {
Expand Down
1 change: 0 additions & 1 deletion dependencies/fx9/src/Compiler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,6 @@ getDefaultResourceLimit(TBuiltInResource &resources)
/* .maxTaskWorkGroupSizeY_NV = */ 1,
/* .maxTaskWorkGroupSizeZ_NV = */ 1,
/* .maxMeshViewCountNV = */ 4,
/* .maxDualSourceDrawBuffersEXT = */ 1,

/* .limits = */
{
Expand Down
10 changes: 5 additions & 5 deletions dependencies/fx9/src/Parser.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@
#endif

/* GLSLang */
#include "glslang/HLSL/hlslAttributes.h"
#include "glslang/HLSL/hlslParseHelper.h"
#include "glslang/HLSL/hlslParseables.h"
#include "glslang/HLSL/hlslScanContext.h"
#include "glslang/HLSL/hlslTokenStream.h"
#include "hlsl/hlslAttributes.h"
#include "hlsl/hlslParseHelper.h"
#include "hlsl/hlslParseables.h"
#include "hlsl/hlslScanContext.h"
#include "hlsl/hlslTokenStream.h"

using namespace glslang;

Expand Down
2 changes: 1 addition & 1 deletion dependencies/glslang
Submodule glslang updated 995 files
2 changes: 1 addition & 1 deletion dependencies/imgui
Submodule imgui updated 103 files
1 change: 1 addition & 0 deletions dependencies/imguifiledialog
Submodule imguifiledialog added at 96d4d5
1 change: 0 additions & 1 deletion dependencies/nativefiledialog
Submodule nativefiledialog deleted from 67345b
2 changes: 1 addition & 1 deletion dependencies/protobuf-c
Submodule protobuf-c updated 50 files
+0 −1 .commit_docs.sh
+146 −0 .github/workflows/build.yml
+0 −32 .travis.yml
+38 −0 ChangeLog
+54 −2 Makefile.am
+8 −2 README.md
+74 −11 build-cmake/CMakeLists.txt
+1 −1 configure.ac
+4 −3 protobuf-c/libprotobuf-c.pc.in
+33 −26 protobuf-c/protobuf-c.c
+6 −2 protobuf-c/protobuf-c.h
+86 −0 protobuf-c/protobuf-c.proto
+9 −9 protoc-c/c_bytes_field.cc
+2 −2 protoc-c/c_bytes_field.h
+13 −13 protoc-c/c_enum.cc
+2 −2 protoc-c/c_enum.h
+5 −5 protoc-c/c_enum_field.cc
+2 −2 protoc-c/c_enum_field.h
+1 −1 protoc-c/c_extension.cc
+3 −3 protoc-c/c_extension.h
+19 −11 protoc-c/c_field.cc
+3 −3 protoc-c/c_field.h
+25 −33 protoc-c/c_file.cc
+1 −4 protoc-c/c_file.h
+14 −11 protoc-c/c_generator.cc
+9 −3 protoc-c/c_generator.h
+81 −96 protoc-c/c_helpers.cc
+26 −37 protoc-c/c_helpers.h
+101 −48 protoc-c/c_message.cc
+12 −6 protoc-c/c_message.h
+4 −4 protoc-c/c_message_field.cc
+1 −1 protoc-c/c_message_field.h
+5 −5 protoc-c/c_primitive_field.cc
+1 −1 protoc-c/c_primitive_field.h
+20 −20 protoc-c/c_service.cc
+2 −2 protoc-c/c_service.h
+15 −6 protoc-c/c_string_field.cc
+2 −2 protoc-c/c_string_field.h
+4 −4 t/generated-code2/common-test-arrays.h
+36 −3 t/generated-code2/test-generated-code2.c
+1 −0 t/issue204/.gitignore
+48 −0 t/issue204/issue204.c
+15 −0 t/issue204/issue204.proto
+1 −1 t/issue220/issue220.c
+12 −0 t/issue389/issue389.proto
+1 −0 t/issue440/.gitignore
+30 −0 t/issue440/issue440.c
+9 −0 t/issue440/issue440.proto
+8 −0 t/test-full.proto
+4 −0 t/test.proto
2 changes: 1 addition & 1 deletion dependencies/sentry-native
Submodule sentry-native updated 71 files
+16 −0 .github/workflows/ci.yml
+5 −5 .gitmodules
+56 −0 CHANGELOG.md
+46 −23 CMakeLists.txt
+17 −16 README.md
+8 −15 examples/example.c
+50 −10 external/CMakeLists.txt
+1 −1 external/breakpad
+1 −1 external/crashpad
+1 −1 external/libunwindstack-ndk
+1 −0 fuzzing-examples/macos-event.json
+1 −0 fuzzing-examples/macos-session.json
+102 −13 include/sentry.h
+16 −5 src/backends/sentry_backend_breakpad.cpp
+11 −2 src/backends/sentry_backend_crashpad.cpp
+6 −23 src/backends/sentry_backend_inproc.c
+220 −185 src/modulefinder/sentry_modulefinder_linux.c
+31 −12 src/modulefinder/sentry_modulefinder_linux.h
+3 −3 src/path/sentry_path_unix.c
+1 −0 src/path/sentry_path_windows.c
+12 −14 src/sentry_backend.h
+4 −0 src/sentry_boot.h
+11 −4 src/sentry_core.c
+0 −5 src/sentry_core.h
+1 −1 src/sentry_database.c
+22 −9 src/sentry_envelope.c
+38 −57 src/sentry_json.c
+6 −3 src/sentry_json.h
+7 −8 src/sentry_scope.c
+2 −1 src/sentry_scope.h
+3 −0 src/sentry_sync.c
+44 −7 src/sentry_sync.h
+32 −14 src/sentry_utils.c
+24 −1 src/sentry_utils.h
+120 −20 src/sentry_value.c
+8 −0 src/sentry_value.h
+6 −2 src/transports/sentry_transport_curl.c
+14 −9 src/unwinder/sentry_unwinder_libbacktrace.c
+12 −25 src/unwinder/sentry_unwinder_libunwindstack.cpp
+9 −1 tests/__init__.py
+3 −4 tests/assertions.py
+4 −1 tests/cmake.py
+2 −0 tests/conditions.py
+1 −0 tests/fuzzing-failures/id-000000,sig-06,src-000560,op-havoc,rep-2
+ tests/fuzzing-failures/id-000000,sig-11,src-000033+000005,op-splice,rep-16
+ tests/fuzzing-failures/id-000000,sig-11,src-000320,op-havoc,rep-2
+ tests/fuzzing-failures/id-000000,sig-11,src-000494+000073,op-splice,rep-8
+ tests/fuzzing-failures/id-000001,sig-11,src-000052+000222,op-splice,rep-32
+1 −0 tests/fuzzing-failures/id-000001,sig-11,src-000215+000415,op-splice,rep-16
+1 −0 tests/fuzzing-failures/id-000002,sig-11,src-000339+000110,op-splice,rep-16
+ tests/fuzzing-failures/id-000002,sig-11,src-000447+000419,op-splice,rep-32
+ tests/fuzzing-failures/id-000003,sig-11,src-000399+000468,op-splice,rep-32
+ tests/fuzzing-failures/id-000004,sig-11,src-000440+000369,op-splice,rep-2
+3 −2 tests/test_integration_http.py
+4 −3 tests/test_integration_stdout.py
+2 −0 tests/unit/.gitattributes
+22 −0 tests/unit/CMakeLists.txt
+77 −0 tests/unit/fuzz.c
+1 −1 tests/unit/test_attachments.c
+2 −2 tests/unit/test_basic.c
+5 −5 tests/unit/test_consent.c
+1 −1 tests/unit/test_envelopes.c
+66 −0 tests/unit/test_fuzzfailures.c
+2 −2 tests/unit/test_logger.c
+59 −29 tests/unit/test_modulefinder.c
+3 −1 tests/unit/test_mpack.c
+2 −2 tests/unit/test_session.c
+4 −4 tests/unit/test_uninit.c
+49 −1 tests/unit/test_value.c
+3 −0 tests/unit/tests.inc
+29 −0 tests/valgrind.txt
2 changes: 1 addition & 1 deletion dependencies/spirv-cross
Submodule spirv-cross updated 412 files
1 change: 1 addition & 0 deletions dependencies/tinyobjloader-c
Submodule tinyobjloader-c added at 7212b1
Loading