update xcode project, skip drawing invisible layers, this will optimize animations

This commit is contained in:
2017-05-15 21:38:44 +01:00
parent 7b99f0510a
commit a5c79d5ad8
3 changed files with 32 additions and 4 deletions

View File

@@ -54,9 +54,6 @@
<border height="30" color=".5" align="center" justify="center" margin="0 0 0 0">
<text text="Layers" font-face="arial" font-size="11" color="1 1 1 1"/>
</border>
<border id="layers-container" pad="5" color=".4" dir="col" flood-events="1">
<!--layers list-->
</border>
<border height="40" color=".5" dir="row" align="center" flood-events="1">
<button-custom id="btn-add" thickness="1" color="0 0" border-color=".0" shrink="1" margin="0 2 0 5">
<icon width="30" icon="add"/>
@@ -72,6 +69,9 @@
<icon width="30" icon="bin_closed"/>
</button-custom>
</border>
<border id="layers-container" pad="5" color=".4" dir="col" flood-events="1">
<!--layers list-->
</border>
</node>
</layout>

View File

@@ -7,6 +7,14 @@
objects = {
/* Begin PBXBuildFile section */
AD0E11971ECA20F200CDA6BB /* app_events.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11921ECA20F200CDA6BB /* app_events.cpp */; };
AD0E11981ECA20F200CDA6BB /* app_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11931ECA20F200CDA6BB /* app_layout.cpp */; };
AD0E11991ECA20F200CDA6BB /* app_shaders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11941ECA20F200CDA6BB /* app_shaders.cpp */; };
AD0E119A1ECA20F200CDA6BB /* node_scroll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11951ECA20F200CDA6BB /* node_scroll.cpp */; };
AD0E119B1ECA215600CDA6BB /* node_scroll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11951ECA20F200CDA6BB /* node_scroll.cpp */; };
AD0E119C1ECA215600CDA6BB /* app_events.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11921ECA20F200CDA6BB /* app_events.cpp */; };
AD0E119D1ECA215600CDA6BB /* app_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11931ECA20F200CDA6BB /* app_layout.cpp */; };
AD0E119E1ECA215600CDA6BB /* app_shaders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11941ECA20F200CDA6BB /* app_shaders.cpp */; };
AD10637F1EC7ADFA002A525F /* node_border.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD1063511EC7ADFA002A525F /* node_border.cpp */; };
AD1063801EC7ADFA002A525F /* node_button_custom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD1063531EC7ADFA002A525F /* node_button_custom.cpp */; };
AD1063811EC7ADFA002A525F /* node_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD1063551EC7ADFA002A525F /* node_button.cpp */; };
@@ -134,6 +142,11 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
AD0E11921ECA20F200CDA6BB /* app_events.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = app_events.cpp; sourceTree = "<group>"; };
AD0E11931ECA20F200CDA6BB /* app_layout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = app_layout.cpp; sourceTree = "<group>"; };
AD0E11941ECA20F200CDA6BB /* app_shaders.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = app_shaders.cpp; sourceTree = "<group>"; };
AD0E11951ECA20F200CDA6BB /* node_scroll.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node_scroll.cpp; sourceTree = "<group>"; };
AD0E11961ECA20F200CDA6BB /* node_scroll.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = node_scroll.h; sourceTree = "<group>"; };
AD1063511EC7ADFA002A525F /* node_border.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node_border.cpp; sourceTree = "<group>"; };
AD1063521EC7ADFA002A525F /* node_border.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = node_border.h; sourceTree = "<group>"; };
AD1063531EC7ADFA002A525F /* node_button_custom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node_button_custom.cpp; sourceTree = "<group>"; };
@@ -322,6 +335,8 @@
AD1063721EC7ADFA002A525F /* node_settings.h */,
AD1063731EC7ADFA002A525F /* node_slider.cpp */,
AD1063741EC7ADFA002A525F /* node_slider.h */,
AD0E11951ECA20F200CDA6BB /* node_scroll.cpp */,
AD0E11961ECA20F200CDA6BB /* node_scroll.h */,
AD1063751EC7ADFA002A525F /* node_stroke_preview.cpp */,
AD1063761EC7ADFA002A525F /* node_stroke_preview.h */,
AD1063771EC7ADFA002A525F /* node_text_input.cpp */,
@@ -374,6 +389,9 @@
AD29CC601EA2B214008C8BFA /* action.cpp */,
AD29CC611EA2B214008C8BFA /* action.h */,
AD58E0701E2A90EF006ACC15 /* app.cpp */,
AD0E11921ECA20F200CDA6BB /* app_events.cpp */,
AD0E11931ECA20F200CDA6BB /* app_layout.cpp */,
AD0E11941ECA20F200CDA6BB /* app_shaders.cpp */,
AD58E0711E2A90EF006ACC15 /* app.h */,
AD4C08CF1E89BD0F0051D85F /* asset.cpp */,
AD4C08D01E89BD0F0051D85F /* asset.h */,
@@ -394,7 +412,6 @@
ADB1C3DB1EA531B0009A65BD /* keymap.h */,
AD8CF71F1E913F0500083FFD /* log.cpp */,
AD8CF7201E913F0500083FFD /* log.h */,
AD58E0521E107411006ACC15 /* main.cpp */,
AD95AEC51E41EDEC002DD03A /* pch.cpp */,
AD58E06C1E2A78BD006ACC15 /* pch.h */,
AD4C08D71E89BD0F0051D85F /* rtt.cpp */,
@@ -407,6 +424,7 @@
AD58E06A1E2A774F006ACC15 /* texture.h */,
ADB61C801E3D38450093280F /* util.cpp */,
ADB61C811E3D38450093280F /* util.h */,
AD58E0521E107411006ACC15 /* main.cpp */,
);
path = engine;
sourceTree = "<group>";
@@ -547,12 +565,15 @@
AD58E06F1E2A80BC006ACC15 /* shape.cpp in Sources */,
AD58E0651E2A76FD006ACC15 /* shader.cpp in Sources */,
AD4C08DA1E89BD0F0051D85F /* bezier.cpp in Sources */,
AD0E11991ECA20F200CDA6BB /* app_shaders.cpp in Sources */,
AD10638F1EC7ADFA002A525F /* node_settings.cpp in Sources */,
AD10638D1EC7ADFA002A525F /* node_panel_stroke.cpp in Sources */,
AD1063841EC7ADFA002A525F /* node_color_quad.cpp in Sources */,
AD1063881EC7ADFA002A525F /* node_image.cpp in Sources */,
AD58E0761E3421F2006ACC15 /* YGNodeList.c in Sources */,
AD744B6E1EBC9EF800B66E30 /* canvas_modes.cpp in Sources */,
AD0E11971ECA20F200CDA6BB /* app_events.cpp in Sources */,
AD0E119A1ECA20F200CDA6BB /* node_scroll.cpp in Sources */,
AD10638E1EC7ADFA002A525F /* node_popup_menu.cpp in Sources */,
ADB61C821E3D38450093280F /* util.cpp in Sources */,
AD10637F1EC7ADFA002A525F /* node_border.cpp in Sources */,
@@ -573,6 +594,7 @@
AD1063851EC7ADFA002A525F /* node_dialog_open.cpp in Sources */,
AD58E0681E2A7741006ACC15 /* image.cpp in Sources */,
AD1063901EC7ADFA002A525F /* node_slider.cpp in Sources */,
AD0E11981ECA20F200CDA6BB /* app_layout.cpp in Sources */,
AD58E0771E3421F2006ACC15 /* Yoga.c in Sources */,
AD4C08DB1E89BD0F0051D85F /* brush.cpp in Sources */,
AD1063951EC7ADFA002A525F /* node.cpp in Sources */,
@@ -603,12 +625,15 @@
ADD7D29A1EBF9E1C00D5A897 /* pch.cpp in Sources */,
AD10639E1EC7AE92002A525F /* node_icon.cpp in Sources */,
AD1063A71EC7AE92002A525F /* node_settings.cpp in Sources */,
AD0E119E1ECA215600CDA6BB /* app_shaders.cpp in Sources */,
ADD7D29D1EBF9E1C00D5A897 /* main.cpp in Sources */,
ADD7D29F1EBF9E1C00D5A897 /* app.cpp in Sources */,
AD1063A41EC7AE92002A525F /* node_panel_layer.cpp in Sources */,
AD1063AA1EC7AE92002A525F /* node_text_input.cpp in Sources */,
AD0E119B1ECA215600CDA6BB /* node_scroll.cpp in Sources */,
ADD7D2941EBF9E1C00D5A897 /* asset.cpp in Sources */,
ADD7D29B1EBF9E1C00D5A897 /* layout.cpp in Sources */,
AD0E119D1ECA215600CDA6BB /* app_layout.cpp in Sources */,
AD1063991EC7AE92002A525F /* node_button.cpp in Sources */,
ADD7D2931EBF9E1C00D5A897 /* log.cpp in Sources */,
ADD7D2971EBF9E1C00D5A897 /* canvas.cpp in Sources */,
@@ -630,6 +655,7 @@
ADD7D26F1EBF9AE300D5A897 /* main.m in Sources */,
ADD7D2A01EBF9E1C00D5A897 /* image.cpp in Sources */,
ADD7D2A11EBF9E1C00D5A897 /* texture.cpp in Sources */,
AD0E119C1ECA215600CDA6BB /* app_events.cpp in Sources */,
ADD7D2961EBF9E1C00D5A897 /* brush.cpp in Sources */,
AD1063A51EC7AE92002A525F /* node_panel_stroke.cpp in Sources */,
ADD7D2911EBF9E1C00D5A897 /* event.cpp in Sources */,

View File

@@ -92,6 +92,8 @@ void NodeCanvas::draw()
ui::ShaderManager::u_int(kShaderUniform::Tex, 0);
for (auto layer_index : m_canvas->m_order)
{
if (m_canvas->m_layers[layer_index].m_opacity == .0f)
continue;
int z = m_canvas->m_order.size() - layer_index;
auto plane_mvp_z = proj * camera * glm::scale(glm::vec3(z)) * m_canvas->m_plane_transform[plane_index] * glm::translate(glm::vec3(0, 0, -1));
ui::ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp_z);