@@ -37,59 +37,101 @@ class TestTextureScene : public Scene {
3737 void LoadInto (World& world) {
3838 if (nullptr == texture) { return ; }
3939
40- auto meshNode = MAKE<WorldNode>();
41- // auto renderer = MAKE<MeshRenderer>();
42- // meshNode->AddComponent(renderer);
43-
44- auto renderer = MAKE<SpriteRenderer>(texture);
45- meshNode->AddComponent (renderer);
46-
47- // auto material = MAKE<RenderMaterial>();
48- auto material = renderer->material ;
49-
50- auto program = GLShaderProgram::registry[" texture.uniform" ];// texture.interp.uniform"]; //"texture.uniform"
51- if (program) {
52- material->shaderProgram = program;
53- // material->textures.Add(RenderTexture(texture->glId));
54-
55- // material->colors.Add(Color::white);
56- // material->colors.Add(Color::red);
57- // material->colors.Add(Color::white);
58- // material->colors.Add(Color::red);
59-
60- // material->uniformColors.Add(Color::blue);
61- // material->uniformFloats.Add(0);//0.5f);
62-
63- material->features [RenderFeatures::Blend] = RenderFeatureStatus::Enable;
64-
65- // QuadRenderMeshBuilder builder(Vector2(400, 400));
66- // auto renderMesh = builder.BuildRenderMesh();
67- // meshRenderer->material = material;
68- // meshRenderer->mesh = renderMesh;
69- }
70- meshNode->transform ->SetWorldPosition (Vector3 (200 , 0 , -0 .2f ));
71- // meshNode->transform->scale.x = 10.0f;
72- // meshNode->transform->scale.y = 10.0f;
73- // renderer->flipX = true;
74- // renderer->flipY = true;
40+ {
41+ auto sliceTexture = DCAST<GLTexture>(world.loadedResources ->map [" texture" ][" slider-track" ].resource );
42+
43+ auto trackNode = MAKE<WorldNode>();
44+ std::array<Vector2Int, 2 > slicePoints{Vector2Int (12 , 12 ), Vector2Int (12 , 12 )};
45+ auto trackRenderer = MAKE<SlicedTextureRenderer>(sliceTexture, Vector2 (300 , 33 ), slicePoints);
46+ trackNode->AddComponent (trackRenderer);
47+
48+ auto trackMaterial = trackRenderer->material ;
49+ trackMaterial->shaderProgram = GLShaderProgram::registry[" texture.uniform" ];
50+ trackMaterial->features [RenderFeatures::Blend] = RenderFeatureStatus::Enable;
51+
52+ auto animateHueEffect = MAKE<AnimateHueEffect>();
53+ animateHueEffect->SetIsOn (true );
7554
76- // meshNode->SetActive(false);
55+ auto thumbTexture = DCAST<GLTexture>(world.loadedResources ->map [" texture" ][" slider-thumb" ].resource );
56+ auto thumbNode = MAKE<WorldNode>();
57+ auto thumbRenderer = MAKE<SpriteRenderer>(thumbTexture);
58+ thumbNode->AddComponent (thumbRenderer);
7759
78- // auto uiSystem = MAKE<UISystem>();
79- // world.AddComponent(uiSystem);
60+ auto thumbMaterial = thumbRenderer->material ;
61+ thumbMaterial->shaderProgram = GLShaderProgram::registry[" texture.uniform" ];
62+ thumbMaterial->features [RenderFeatures::Blend] = RenderFeatureStatus::Enable;
8063
81- auto button = MAKE<ButtonControl>();
82- auto ts = MAKE<TestStateHandler>();
83- auto dragHandler = MAKE<DragHandler2D>();
64+ auto sliderControl = MAKE<SliderControl>();
65+ sliderControl->endCapSize = 10 ;
66+ trackNode->AddComponent (sliderControl);
67+ trackNode->AddChild (thumbNode);
8468
85- ComponentTool ct;
86- auto collider = std::make_shared<SimplePolygonCollider2D>();
87- ct.AddComponent (*meshNode, collider);
88- // ct.AddComponent(*meshNode, button);
89- ct.AddComponent (*meshNode, dragHandler);
90- ct.AddComponent (*meshNode, ts);
69+ ComponentTool ct;
70+ auto collider = MAKE<SimplePolygonCollider2D>();
71+ ct.AddComponent (*thumbNode, collider);
72+ ct.AddComponent (*thumbNode, animateHueEffect);
9173
92- world.Add (meshNode);
74+ world.Add (trackNode);
75+ }
76+
77+ {
78+ auto meshNode = MAKE<WorldNode>();
79+ // auto renderer = MAKE<MeshRenderer>();
80+ // meshNode->AddComponent(renderer);
81+
82+ auto renderer = MAKE<SpriteRenderer>(texture);
83+ meshNode->AddComponent (renderer);
84+
85+ // auto material = MAKE<RenderMaterial>();
86+ auto material = renderer->material ;
87+
88+ auto program = GLShaderProgram::registry[" texture.uniform" ];// texture.interp.uniform"]; //"texture.uniform"
89+ if (program) {
90+ material->shaderProgram = program;
91+ // material->textures.Add(RenderTexture(texture->glId));
92+
93+ // material->colors.Add(Color::white);
94+ // material->colors.Add(Color::red);
95+ // material->colors.Add(Color::white);
96+ // material->colors.Add(Color::red);
97+
98+ // material->uniformColors.Add(Color::blue);
99+ // material->uniformFloats.Add(0);//0.5f);
100+
101+ material->features [RenderFeatures::Blend] = RenderFeatureStatus::Enable;
102+
103+ // QuadRenderMeshBuilder builder(Vector2(400, 400));
104+ // auto renderMesh = builder.BuildRenderMesh();
105+ // meshRenderer->material = material;
106+ // meshRenderer->mesh = renderMesh;
107+ }
108+ meshNode->transform ->SetWorldPosition (Vector3 (200 , 0 , -0 .2f ));
109+ // meshNode->transform->scale.x = 10.0f;
110+ // meshNode->transform->scale.y = 10.0f;
111+ // renderer->flipX = true;
112+ // renderer->flipY = true;
113+
114+ // meshNode->SetActive(false);
115+
116+ // auto uiSystem = MAKE<UISystem>();
117+ // world.AddComponent(uiSystem);
118+
119+ auto button = MAKE<ButtonControl>();
120+ auto ts = MAKE<TestStateHandler>();
121+ auto dragHandler = MAKE<DragHandler2D>();
122+ auto animateHueEffect = MAKE<AnimateHueEffect>();
123+ animateHueEffect->SetIsOn (true );
124+
125+ ComponentTool ct;
126+ auto collider = MAKE<SimplePolygonCollider2D>();
127+ ct.AddComponent (*meshNode, collider);
128+ // ct.AddComponent(*meshNode, button);
129+ ct.AddComponent (*meshNode, dragHandler);
130+ ct.AddComponent (*meshNode, ts);
131+ // ct.AddComponent(*meshNode, animateHueEffect);
132+
133+ world.Add (meshNode);
134+ }
93135 }
94136};
95137
0 commit comments