1------------------------------------------------------------------------- 2drawElements Quality Program Test Specification 3----------------------------------------------- 4 5Copyright 2014 The Android Open Source Project 6 7Licensed under the Apache License, Version 2.0 (the "License"); 8you may not use this file except in compliance with the License. 9You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13Unless required by applicable law or agreed to in writing, software 14distributed under the License is distributed on an "AS IS" BASIS, 15WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16See the License for the specific language governing permissions and 17limitations under the License. 18------------------------------------------------------------------------- 19 Multiple vertex attribute vertex array tests 20 21Tests: 22 + dEQP-GLES2.functional.vertex_arrays.multiple_attributes.* 23 24Includes: 25 + Using different attribute counts. 26 + Multiple attributes from different sources(buffer, user pointer). 27 + Multiple attributes with different strides 28 + Multiple attributes with different input types. 29 30Excludes: 31 32Description: 33 34Testcases generate data that defines quads in testcase specifig format. 35This takes account stride, offsets and other parameters. First attribute is used 36as coordinates and must have two or more components to form distinct coordinates. 37First two components are coordinates and six subsequent attributes form two triangles 38which define a quad. Third and fourth component are same for each vertex in quad. 39Other attributes are used to define color for quad. These are generated to have 40same value for each vertex in quad. This data is uploaded to buffer or used from 41user pointer while rendering. Rendering uses simple shader that takes first 42attributes first two components and adds first to third component and second 43to fourth component, if more than two components are used. First and third component 44are used as x coordinate and second and fourth as y. These values are also scaled to 45range from -1.0 to 1.0. Other attributes are multiplied component wise and are scaled 46then to range from 0.0 to 1.0 and used as color. Test renders only once and result is 47checked against reference implementations result. 48 49Attribute count tests render simple float data from user pointer using vec2 in 50shader. 51 52Storage test render using three attributes from buffer or user pointer. Two component 53float data is used as vec2 in shader. 54 55Stride tests use three attributes with different strides. Two component float 56data is used as vec2 in shader. Strides test uses npot stride, pot stride and types 57own size as stride. 58 59Input type testcases use three attributes with different input types. Attributes 60are used as vec2 in shader. 61