18ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com/*
28ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * Copyright 2012 The Android Open Source Project
38ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com *
48ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * Use of this source code is governed by a BSD-style license that can be
58ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * found in the LICENSE file.
68ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com */
78ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
88ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com#ifndef ANDROID_HWUI_VERTEX_H
98ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com#define ANDROID_HWUI_VERTEX_H
108ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
118ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.comnamespace android {
128ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.comnamespace uirenderer {
138ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
148ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com/**
158ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * Simple structure to describe a vertex with a position and a texture.
168ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com */
178ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.comstruct Vertex {
188ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    float position[2];
198ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
208ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    static inline void set(Vertex* vertex, float x, float y) {
218ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].position[0] = x;
228ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].position[1] = y;
238ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    }
248ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com}; // struct Vertex
258ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
268ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com/**
278ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * Simple structure to describe a vertex with a position and a texture.
288ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com */
298ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com/*struct TextureVertex {
308ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    float position[2];
318ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    float texture[2];
328ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
338ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    static inline void set(TextureVertex* vertex, float x, float y, float u, float v) {
348ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].position[0] = x;
358ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].position[1] = y;
368ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].texture[0] = u;
378ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].texture[1] = v;
388ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    }
398ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
408ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    static inline void setUV(TextureVertex* vertex, float u, float v) {
418ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].texture[0] = u;
428ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].texture[1] = v;
438ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    }
448ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com};*/ // struct TextureVertex
458ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
468ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com/**
478ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * Simple structure to describe a vertex with a position and an alpha value.
488ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com */
498ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.comstruct AlphaVertex : Vertex {
508ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    float alpha;
518ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
528ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    static inline void set(AlphaVertex* vertex, float x, float y, float alpha) {
538ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        Vertex::set(vertex, x, y);
548ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].alpha = alpha;
558ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    }
568ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
578ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    static inline void setColor(AlphaVertex* vertex, float alpha) {
588ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].alpha = alpha;
598ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    }
608ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com}; // struct AlphaVertex
618ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
628ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com/**
638ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * Simple structure to describe a vertex with a position and an alpha value.
648ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com */
658ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com/*struct AAVertex : Vertex {
668ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    float width;
678ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    float length;
688ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
698ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    static inline void set(AAVertex* vertex, float x, float y, float width, float length) {
708ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        Vertex::set(vertex, x, y);
718ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].width = width;
728ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].length = length;
738ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    }
748ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
758ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    static inline void setColor(AAVertex* vertex, float width, float length) {
768ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].width = width;
778ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com        vertex[0].length = length;
788ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com    }
798ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com};*/ // struct AlphaVertex
808ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
818ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com}; // namespace uirenderer
828ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com}; // namespace android
838ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com
848ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com#endif // ANDROID_HWUI_VERTEX_H
85