| 1181 | } |
| 1182 | |
| 1183 | std::string GpuShaderText::float4GreaterThan(const std::string & a, |
| 1184 | const std::string & b) const |
| 1185 | { |
| 1186 | std::ostringstream kw; |
| 1187 | switch (m_lang) |
| 1188 | { |
| 1189 | case GPU_LANGUAGE_GLSL_1_2: |
| 1190 | case GPU_LANGUAGE_GLSL_1_3: |
| 1191 | case GPU_LANGUAGE_GLSL_4_0: |
| 1192 | case GPU_LANGUAGE_GLSL_VK_4_6: |
| 1193 | case GPU_LANGUAGE_GLSL_ES_1_0: |
| 1194 | case GPU_LANGUAGE_GLSL_ES_3_0: |
| 1195 | case GPU_LANGUAGE_CG: |
| 1196 | { |
| 1197 | kw << float4Keyword() << "(greaterThan( " << a << ", " << b << "))"; |
| 1198 | break; |
| 1199 | } |
| 1200 | case GPU_LANGUAGE_MSL_2_0: |
| 1201 | case GPU_LANGUAGE_HLSL_SM_5_0: |
| 1202 | { |
| 1203 | kw << float4Keyword() << "(" |
| 1204 | << "(" << a << "[0] > " << b << "[0]) ? 1.0 : 0.0, " |
| 1205 | << "(" << a << "[1] > " << b << "[1]) ? 1.0 : 0.0, " |
| 1206 | << "(" << a << "[2] > " << b << "[2]) ? 1.0 : 0.0, " |
| 1207 | << "(" << a << "[3] > " << b << "[3]) ? 1.0 : 0.0)"; |
| 1208 | break; |
| 1209 | } |
| 1210 | case LANGUAGE_OSL_1: |
| 1211 | { |
| 1212 | kw << float4Keyword() << "(" |
| 1213 | << "(" << a << ".rgb.r > " << b << ".x) ? 1.0 : 0.0, " |
| 1214 | << "(" << a << ".rgb.g > " << b << ".y) ? 1.0 : 0.0, " |
| 1215 | << "(" << a << ".rgb.b > " << b << ".z) ? 1.0 : 0.0, " |
| 1216 | << "(" << a << ".a > " << b << ".w) ? 1.0 : 0.0)"; |
| 1217 | break; |
| 1218 | } |
| 1219 | |
| 1220 | default: |
| 1221 | { |
| 1222 | throw Exception("Unknown GPU shader language."); |
| 1223 | } |
| 1224 | } |
| 1225 | return kw.str(); |
| 1226 | } |
| 1227 | |
| 1228 | std::string GpuShaderText::float3GreaterThanEqual(const std::string& a, |
| 1229 | const std::string& b) const |
no outgoing calls
no test coverage detected