MCPcopy Create free account
hub / github.com/defold/defold / NewNode

Function NewNode

engine/gui/src/gui.cpp:2641–2725  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2639 }
2640
2641 HNode NewNode(HScene scene, const Point3& position, const Vector3& size, NodeType node_type, uint32_t custom_type)
2642 {
2643 uint16_t index = AllocateNode(scene);
2644 if (index == scene->m_NodePool.Capacity())
2645 {
2646 dmLogError("Could not create the node since the buffer is full (%d).", scene->m_NodePool.Capacity());
2647 return 0;
2648 }
2649 uint16_t version = scene->m_NextVersionNumber;
2650 if (version == 0)
2651 {
2652 // We can't use zero in order to avoid a handle == 0
2653 ++version;
2654 }
2655
2656 InternalNode* node = &scene->m_Nodes[index];
2657 memset(node, 0, sizeof(InternalNode));
2658 node->m_Node.m_Properties[PROPERTY_POSITION] = Vector4(Vector3(position), 1);
2659 node->m_Node.m_Properties[PROPERTY_ROTATION] = Vector4(0, 0, 0, 1);
2660 node->m_Node.m_Properties[PROPERTY_SCALE] = Vector4(1,1,1,0);
2661 node->m_Node.m_Properties[PROPERTY_COLOR] = Vector4(1,1,1,1);
2662 node->m_Node.m_Properties[PROPERTY_OUTLINE] = Vector4(0,0,0,1);
2663 node->m_Node.m_Properties[PROPERTY_SHADOW] = Vector4(0,0,0,1);
2664 node->m_Node.m_Properties[PROPERTY_SIZE] = Vector4(size, 0);
2665 node->m_Node.m_Properties[PROPERTY_SLICE9] = Vector4(0,0,0,0);
2666 node->m_Node.m_Properties[PROPERTY_PIE_PARAMS] = Vector4(0,360,0,0);
2667 node->m_Node.m_Properties[PROPERTY_TEXT_PARAMS] = Vector4(1, 0, 0, 0);
2668 node->m_Node.m_Properties[PROPERTY_EULER] = Vector4(0);
2669 node->m_Node.m_Properties[PROPERTY_PREV_EULER] = Vector4(0);
2670 node->m_Node.m_LocalTransform = Matrix4::identity();
2671 node->m_Node.m_LocalAdjustScale = Vector4(1.0, 1.0, 1.0, 1.0);
2672 node->m_Node.m_PerimeterVertices = 32;
2673 node->m_Node.m_OuterBounds = PIEBOUNDS_ELLIPSE;
2674 node->m_Node.m_BlendMode = 0;
2675 node->m_Node.m_NodeType = (uint32_t) node_type;
2676 node->m_Node.m_CustomType = custom_type;
2677 node->m_Node.m_XAnchor = 0;
2678 node->m_Node.m_YAnchor = 0;
2679 node->m_Node.m_Pivot = 0;
2680 node->m_Node.m_AdjustMode = 0;
2681 node->m_Node.m_SizeMode = SIZE_MODE_MANUAL;
2682 node->m_Node.m_LineBreak = 0;
2683 node->m_Node.m_Enabled = 1;
2684 node->m_Node.m_IsVisible = 1;
2685 node->m_Node.m_DirtyLocal = 1;
2686 node->m_Node.m_InheritAlpha = 0;
2687 node->m_Node.m_ClippingMode = CLIPPING_MODE_NONE;
2688 node->m_Node.m_ClippingVisible = true;
2689 node->m_Node.m_ClippingInverted = false;
2690
2691 node->m_Node.m_HasResetPoint = 0;
2692 node->m_Node.m_TextureHash = 0;
2693 node->m_Node.m_Texture = 0;
2694 node->m_Node.m_TextureType = NODE_TEXTURE_TYPE_NONE;
2695 node->m_Node.m_TextureSetAnimDesc.Init();
2696 node->m_Node.m_FlipbookAnimHash = 0;
2697 node->m_Node.m_FlipbookAnimPosition = 0.0f;
2698 node->m_Node.m_FontHash = 0;

Callers 6

LuaDoNewNodeFunction · 0.70
LuaNewParticlefxNodeFunction · 0.70
AddBoxMethod · 0.50
TEST_FFunction · 0.50
SetupGuiTestSceneFunction · 0.50
SetupGuiSceneFunction · 0.50

Calls 8

AllocateNodeFunction · 0.85
identityFunction · 0.85
GetNodeHandleFunction · 0.70
MoveNodeAboveFunction · 0.70
Vector4Class · 0.50
Vector3Class · 0.50
CapacityMethod · 0.45
InitMethod · 0.45

Tested by 3

AddBoxMethod · 0.40
TEST_FFunction · 0.40
SetupGuiTestSceneFunction · 0.40