1 # -*- coding: utf-8 -*-
3 #-------------------------------------------------------------------------
4 # drawElements Quality Program utilities
5 # --------------------------------------
7 # Copyright 2015 The Android Open Source Project
9 # Licensed under the Apache License, Version 2.0 (the "License");
10 # you may not use this file except in compliance with the License.
11 # You may obtain a copy of the License at
13 # http://www.apache.org/licenses/LICENSE-2.0
15 # Unless required by applicable law or agreed to in writing, software
16 # distributed under the License is distributed on an "AS IS" BASIS,
17 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 # See the License for the specific language governing permissions and
19 # limitations under the License.
21 #-------------------------------------------------------------------------
28 reservedOperatorCaseTemplate = """
29 case operator_${{NAME}}
34 precision mediump float;
35 precision mediump int;
52 class ReservedOperatorCase(ShaderCase):
53 def __init__(self, op):
55 if op.operator == "~":
56 self.operation = 'value = ~value;'
58 self.operation = 'value ' + op.operator + ' 1;'
65 return fillTemplate(reservedOperatorCaseTemplate, params)
69 def __init__(self, operator, name):
70 self.operator = operator
75 RESERVED_OPERATORS = [
76 Operator("%", "modulo"),
77 Operator("~", "bitwise_not"),
78 Operator("<<", "bitwise_shift_left"),
79 Operator(">>", "bitwise_shift_right"),
80 Operator("&", "bitwise_and"),
81 Operator("^", "bitwise_xor"),
82 Operator("|", "bitwise_or"),
83 Operator("%=", "assign_modulo"),
84 Operator("<<=", "assign_shift_left"),
85 Operator(">>=", "assign_shift_right"),
86 Operator("&=", "assign_and"),
87 Operator("^=", "assign_xor"),
88 Operator("|=", "assign_or")
91 # Reserved operator usage cases
93 reservedOperatorCases = []
95 for operator in RESERVED_OPERATORS:
96 reservedOperatorCases.append(ReservedOperatorCase(operator)) # Reserved operators
100 if __name__ == "__main__":
101 print "Generating shader case files."
102 writeAllCases("reserved_operators.test", reservedOperatorCases)