2 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include "mesh-builder.h"
22 Material CreateMaterial(float opacity)
24 Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
25 Material material = Material::New(shader);
27 Vector4 color = Color::WHITE;
29 material.SetProperty(Material::Property::COLOR, color);
33 Material CreateMaterial(float opacity, Image image)
35 Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
36 Material material = Material::New(shader);
38 Vector4 color = Color::WHITE;
40 material.SetProperty(Material::Property::COLOR, color);
42 Sampler sampler = Sampler::New( image, "sTexture" );
43 material.AddSampler( sampler );
48 PropertyBuffer CreatePropertyBuffer()
50 Property::Map texturedQuadVertexFormat;
51 texturedQuadVertexFormat["aPosition"] = Property::VECTOR2;
52 texturedQuadVertexFormat["aVertexCoord"] = Property::VECTOR2;
54 PropertyBuffer vertexData = PropertyBuffer::New( texturedQuadVertexFormat, 4 );
58 Geometry CreateQuadGeometry(void)
60 PropertyBuffer vertexData = CreatePropertyBuffer();
61 return CreateQuadGeometryFromBuffer( vertexData );
64 Geometry CreateQuadGeometryFromBuffer( PropertyBuffer vertexData )
66 const float halfQuadSize = .5f;
67 struct TexturedQuadVertex { Vector2 position; Vector2 textureCoordinates; };
68 TexturedQuadVertex texturedQuadVertexData[4] = {
69 { Vector2(-halfQuadSize, -halfQuadSize), Vector2(0.f, 0.f) },
70 { Vector2( halfQuadSize, -halfQuadSize), Vector2(1.f, 0.f) },
71 { Vector2(-halfQuadSize, halfQuadSize), Vector2(0.f, 1.f) },
72 { Vector2( halfQuadSize, halfQuadSize), Vector2(1.f, 1.f) } };
73 vertexData.SetData(texturedQuadVertexData);
75 unsigned int indexData[6] = { 0, 3, 1, 0, 2, 3 };
76 Property::Map indexFormat;
77 indexFormat["indices"] = Property::UNSIGNED_INTEGER;
78 PropertyBuffer indices = PropertyBuffer::New( indexFormat, sizeof(indexData)/sizeof(indexData[0]) );
79 indices.SetData(indexData);
81 Geometry geometry = Geometry::New();
82 geometry.AddVertexBuffer( vertexData );
83 geometry.SetIndexBuffer( indices );