116b95120323dd6e977dea43c29da5897ac40ec83Tim Murray/* 216b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * Copyright (C) 2012 The Android Open Source Project 316b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * 416b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * Licensed under the Apache License, Version 2.0 (the "License"); 516b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * you may not use this file except in compliance with the License. 616b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * You may obtain a copy of the License at 716b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * 816b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * http://www.apache.org/licenses/LICENSE-2.0 916b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * 1016b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * Unless required by applicable law or agreed to in writing, software 1116b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * distributed under the License is distributed on an "AS IS" BASIS, 1216b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1316b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * See the License for the specific language governing permissions and 1416b95120323dd6e977dea43c29da5897ac40ec83Tim Murray * limitations under the License. 1516b95120323dd6e977dea43c29da5897ac40ec83Tim Murray */ 1616b95120323dd6e977dea43c29da5897ac40ec83Tim Murray 1716b95120323dd6e977dea43c29da5897ac40ec83Tim Murray#pragma version(1) 184a92d1268983edaf329f73c8a5b8860cdbb11596Tim Murray#pragma rs java_package_name(com.android.rs.cppbasic) 1916b95120323dd6e977dea43c29da5897ac40ec83Tim Murray#pragma rs_fp_relaxed 2016b95120323dd6e977dea43c29da5897ac40ec83Tim Murray 2143514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hinesint g_i = 4; 2243514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines 2343514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hinesfloat g_f = 5.9; 2443514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines 2516b95120323dd6e977dea43c29da5897ac40ec83Tim Murrayconst static float3 gMonoMult = {0.299f, 0.587f, 0.114f}; 2616b95120323dd6e977dea43c29da5897ac40ec83Tim Murray 2743514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hinesbool *failed; 2843514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines 2943514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines#define _RS_ASSERT(b) \ 3043514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hinesdo { \ 3143514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines if (!(b)) { \ 3243514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines *failed = true; \ 3343514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines rsDebug(#b " FAILED", 0); \ 3443514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines } \ 3543514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines\ 3643514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines} while (0) 3743514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines 3843514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hinesstruct myStruct { 3943514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines int i; 4043514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines int j; 4143514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines float f; 4243514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines char c[3]; 4343514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines}; 4443514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines 458a588bd9d34088ed89ef2c192c32ea2301e601bcStephen Hinesrs_allocation alloc; 468a588bd9d34088ed89ef2c192c32ea2301e601bcStephen Hinesrs_element elem; 478a588bd9d34088ed89ef2c192c32ea2301e601bcStephen Hinesrs_type type; 488a588bd9d34088ed89ef2c192c32ea2301e601bcStephen Hinesrs_sampler sampler; 498a588bd9d34088ed89ef2c192c32ea2301e601bcStephen Hinesrs_script script; 508a588bd9d34088ed89ef2c192c32ea2301e601bcStephen Hines 5116b95120323dd6e977dea43c29da5897ac40ec83Tim Murrayvoid root(const uchar4 *v_in, uchar4 *v_out) { 5216b95120323dd6e977dea43c29da5897ac40ec83Tim Murray float4 f4 = rsUnpackColor8888(*v_in); 5316b95120323dd6e977dea43c29da5897ac40ec83Tim Murray 5416b95120323dd6e977dea43c29da5897ac40ec83Tim Murray float3 mono = dot(f4.rgb, gMonoMult); 5516b95120323dd6e977dea43c29da5897ac40ec83Tim Murray *v_out = rsPackColorTo8888(mono); 5616b95120323dd6e977dea43c29da5897ac40ec83Tim Murray} 5716b95120323dd6e977dea43c29da5897ac40ec83Tim Murray 5843514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hinesvoid foo(int i, float f) { 5943514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines rsDebug("g_i", g_i); 6043514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines rsDebug("g_f", g_f); 6143514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines rsDebug("i", i); 6243514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines rsDebug("f", f); 6343514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines} 6443514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines 6543514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hinesvoid bar(int i, int j, char k, int l, int m, int n) { 6643514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines _RS_ASSERT(i == 47); 6743514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines _RS_ASSERT(j == -3); 6843514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines _RS_ASSERT(k == 'c'); 6943514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines _RS_ASSERT(l == -7); 7043514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines _RS_ASSERT(m == 14); 7143514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines _RS_ASSERT(n == -8); 7243514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines} 7343514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines 74025b5f82971c431eb22df3c9d0f00b3cbe426bdbChris Wailesint RS_KERNEL kern1(int i, uint32_t x, uint32_t y) { 7543514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines return i + 10 * x + 100 *y; 7643514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines} 7743514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines 78025b5f82971c431eb22df3c9d0f00b3cbe426bdbChris Wailesvoid RS_KERNEL verify_kern1(int i, uint32_t x, uint32_t y) { 79a1302e2a413fb32fb5eab320e9802a7893ff6f27Stephen Hines _RS_ASSERT(i == (5 + 10 * x + 100 * y)); 8043514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines rsDebug("i ", i); 8143514cde7e9b4869ffba6ba759d1e31f22d936f7Stephen Hines} 8216b95120323dd6e977dea43c29da5897ac40ec83Tim Murray 83