1e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams/* 2e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * Copyright (C) 2008 The Android Open Source Project 3e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * 4e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * you may not use this file except in compliance with the License. 6e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * You may obtain a copy of the License at 7e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * 8e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * http://www.apache.org/licenses/LICENSE-2.0 9e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * 10e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * Unless required by applicable law or agreed to in writing, software 11e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * See the License for the specific language governing permissions and 14e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams * limitations under the License. 15e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams */ 16e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 17e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Samspackage com.example.android.rs.miscsamples; 18e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 19e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Samsimport java.io.Writer; 20e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Samsimport java.util.Vector; 21e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 22e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Samsimport android.content.res.Resources; 23e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Samsimport android.renderscript.*; 24e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Samsimport android.renderscript.ProgramStore.DepthFunc; 25e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Samsimport android.util.Log; 26e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 27e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 28e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Samspublic class RsListRS { 29e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 30e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams private final int STATE_LAST_FOCUS = 1; 31e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 32e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams private static final String[] DATA_LIST = { 33e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", 34e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", 35e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", 36e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", 37e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", 38e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", 39e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "British Indian Ocean Territory", "British Virgin Islands", "Brunei", "Bulgaria", 40e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Burkina Faso", "Burundi", "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde", 41e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", 42e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo", 43e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic", 44e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic", 45e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", 46e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland", 47e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia", 48e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar", 49e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau", 50e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary", 51e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", 52e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos", 53e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", 54e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", 55e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova", 56e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia", 57e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand", 58e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas", 59e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", 60e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar", 61e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena", 62e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon", 63e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal", 64e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", 65e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea", 66e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden", 67e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas", 68e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", 69e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda", 70e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Ukraine", "United Arab Emirates", "United Kingdom", 71e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan", 72e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara", 73e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams "Yemen", "Yugoslavia", "Zambia", "Zimbabwe" 74e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams }; 75e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 76e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams public RsListRS() { 77e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams } 78e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 79e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams public void init(RenderScriptGL rs, Resources res) { 80e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mRS = rs; 81e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mRes = res; 82e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams initRS(); 83e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams } 84e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 85e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams private Resources mRes; 86e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams private RenderScriptGL mRS; 87e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams private Font mItalic; 88e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 89e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams ScriptField_ListAllocs_s mListAllocs; 90e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 91e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams private ScriptC_rslist mScript; 92e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 93e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams int mLastX; 94e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams int mLastY; 95e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 96e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams public void onActionDown(int x, int y) { 97e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mScript.set_gDY(0.0f); 98e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 99e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mLastX = x; 100e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mLastY = y; 101e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams } 102e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 103e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams public void onActionMove(int x, int y) { 104e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams int dx = mLastX - x; 105e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams int dy = mLastY - y; 106e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 107e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams if (Math.abs(dy) <= 2) { 108e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams dy = 0; 109e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams } 110e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 111e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mScript.set_gDY(dy); 112e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 113e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mLastX = x; 114e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mLastY = y; 115e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams } 116e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 117e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams private void initRS() { 118e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 119e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mScript = new ScriptC_rslist(mRS, mRes, R.raw.rslist); 120e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 121e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mListAllocs = new ScriptField_ListAllocs_s(mRS, DATA_LIST.length); 122e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams for (int i = 0; i < DATA_LIST.length; i ++) { 123e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams ScriptField_ListAllocs_s.Item listElem = new ScriptField_ListAllocs_s.Item(); 124e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams listElem.text = Allocation.createFromString(mRS, DATA_LIST[i], Allocation.USAGE_SCRIPT); 125e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mListAllocs.set(listElem, i, false); 126e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams } 127e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 128e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mListAllocs.copyAll(); 129e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 130e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mScript.bind_gList(mListAllocs); 131e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 132e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mItalic = Font.create(mRS, mRes, "serif", Font.Style.BOLD_ITALIC, 8); 133e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mScript.set_gItalic(mItalic); 134e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 135e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams mRS.bindRootScript(mScript); 136e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams } 137e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams} 138e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 139e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 140e5f2f66f8c802d64ecf869081036ae13d4e9e19cJason Sams 141