Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
#1

Почему eclipse подчеркивает raw? - Программирование Android

15.04.2015, 11:55. Просмотров 277. Ответов 0
Метки нет (Все метки)

в строке String fragmentShaderSource = TextResourceReader
.readTextFileFromResource(context, R.raw.simple_fragment_shader);
ошибка, подчеркивает raw

файл в raw конечно же лежит

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
/***
 * Excerpted from "OpenGL ES for Android",
 * published by The Pragmatic Bookshelf.
 * Copyrights apply to this code. It may not be used to create training material, 
 * courses, books, articles, and the like. Contact us if you are in doubt.
 * We make no guarantees that this code is fit for any purpose. 
 * Visit [url]http://www.pragmaticprogrammer.com/titles/kbogla[/url] for more book information.
***/
package com.airhockey.android;
 
import static android.opengl.GLES20.GL_COLOR_BUFFER_BIT;
import static android.opengl.GLES20.GL_FLOAT;
import static android.opengl.GLES20.GL_LINES;
import static android.opengl.GLES20.GL_POINTS;
import static android.opengl.GLES20.GL_TRIANGLES;
import static android.opengl.GLES20.glClear;
import static android.opengl.GLES20.glClearColor;
import static android.opengl.GLES20.glDrawArrays;
import static android.opengl.GLES20.glEnableVertexAttribArray;
import static android.opengl.GLES20.glGetAttribLocation;
import static android.opengl.GLES20.glGetUniformLocation;
import static android.opengl.GLES20.glUniform4f;
import static android.opengl.GLES20.glUseProgram;
import static android.opengl.GLES20.glVertexAttribPointer;
import static android.opengl.GLES20.glViewport;
 
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
 
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
 
import android.content.Context;
import android.opengl.GLSurfaceView.Renderer;
 
import com.airhockey.android.util.LoggerConfig;
import com.airhockey.android.util.ShaderHelper;
import com.airhockey.android.util.TextResourceReader;
 
public class AirHockeyRenderer implements Renderer {
    private static final String U_COLOR = "u_Color";
    private static final String A_POSITION = "a_Position";    
    private static final int POSITION_COMPONENT_COUNT = 2;
    private static final int BYTES_PER_FLOAT = 4;
    private final FloatBuffer vertexData;
    private final Context context;
    private int program;
    private int uColorLocation;
    private int aPositionLocation;
 
    public AirHockeyRenderer() {
        // This constructor shouldn't be called -- only kept for showing
        // evolution of the code in the chapter.
        context = null;
        vertexData = null;
    }
 
    public AirHockeyRenderer(Context context) {
        this.context = context;
        
        /*
        float[] tableVertices = { 
            0f,  0f, 
            0f, 14f, 
            9f, 14f, 
            9f,  0f 
        };
         */
        /*
        float[] tableVerticesWithTriangles = {
            // Triangle 1
            0f,  0f, 
            9f, 14f,
            0f, 14f,
 
            // Triangle 2
            0f,  0f, 
            9f,  0f,                            
            9f, 14f         
            // Next block for formatting purposes
            9f, 14f,
            , // Comma here for formatting purposes         
 
            // Line 1
            0f,  7f, 
            9f,  7f,
 
            // Mallets
            4.5f,  2f, 
            4.5f, 12f
        };
         */
        float[] tableVerticesWithTriangles = {
            // Triangle 1
            -0.5f, -0.5f, 
             0.5f,  0.5f,
            -0.5f,  0.5f,
 
            // Triangle 2
            -0.5f, -0.5f, 
             0.5f, -0.5f, 
             0.5f,  0.5f,
 
            // Line 1
            -0.5f, 0f, 
             0.5f, 0f,
 
            // Mallets
            0f, -0.25f, 
            0f,  0.25f
        };
        
        vertexData = ByteBuffer
            .allocateDirect(tableVerticesWithTriangles.length * BYTES_PER_FLOAT)
            .order(ByteOrder.nativeOrder())
            .asFloatBuffer();
 
        vertexData.put(tableVerticesWithTriangles);
    }
 
 
    @Override
    public void onSurfaceCreated(GL10 glUnused, EGLConfig config) {
        /*
        // Set the background clear color to red. The first component is red,
        // the second is green, the third is blue, and the last component is
        // alpha, which we don't use in this lesson.
        glClearColor(1.0f, 0.0f, 0.0f, 0.0f);
         */
 
        glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
 
        String vertexShaderSource = TextResourceReader
            .readTextFileFromResource(context, R.raw.simple_vertex_shader);
        String fragmentShaderSource = TextResourceReader
            .readTextFileFromResource(context, R.raw.simple_fragment_shader);
 
        int vertexShader = ShaderHelper.compileVertexShader(vertexShaderSource);
        int fragmentShader = ShaderHelper.compileFragmentShader(fragmentShaderSource);
 
        program = ShaderHelper.linkProgram(vertexShader, fragmentShader);
 
        if (LoggerConfig.ON) {
            ShaderHelper.validateProgram(program);
        }
 
        glUseProgram(program);
 
        uColorLocation = glGetUniformLocation(program, U_COLOR);
        
        aPositionLocation = glGetAttribLocation(program, A_POSITION);
        
        // Bind our data, specified by the variable vertexData, to the vertex
        // attribute at location A_POSITION_LOCATION.
        vertexData.position(0);
        glVertexAttribPointer(aPositionLocation, POSITION_COMPONENT_COUNT, GL_FLOAT, 
            false, 0, vertexData);
 
        glEnableVertexAttribArray(aPositionLocation);
    }
 
    /**
     * onSurfaceChanged is called whenever the surface has changed. This is
     * called at least once when the surface is initialized. Keep in mind that
     * Android normally restarts an Activity on rotation, and in that case, the
     * renderer will be destroyed and a new one created.
     * 
     * @param width
     *            The new width, in pixels.
     * @param height
     *            The new height, in pixels.
     */
    @Override
    public void onSurfaceChanged(GL10 glUnused, int width, int height) {
        // Set the OpenGL viewport to fill the entire surface.
        glViewport(0, 0, width, height);        
    }
 
    /**
     * OnDrawFrame is called whenever a new frame needs to be drawn. Normally,
     * this is done at the refresh rate of the screen.
     */
    @Override
    public void onDrawFrame(GL10 glUnused) {
        // Clear the rendering surface.
        glClear(GL_COLOR_BUFFER_BIT);
        
        // Draw the table.
        glUniform4f(uColorLocation, 1.0f, 1.0f, 1.0f, 1.0f);        
        glDrawArrays(GL_TRIANGLES, 0, 6);
        
        // Draw the center dividing line.
        glUniform4f(uColorLocation, 1.0f, 0.0f, 0.0f, 1.0f);        
        glDrawArrays(GL_LINES, 6, 2); 
        
        // Draw the first mallet blue.        
        glUniform4f(uColorLocation, 0.0f, 0.0f, 1.0f, 1.0f);        
        glDrawArrays(GL_POINTS, 8, 1);
 
        // Draw the second mallet red.
        glUniform4f(uColorLocation, 1.0f, 0.0f, 0.0f, 1.0f);        
        glDrawArrays(GL_POINTS, 9, 1);
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2015, 11:55     Почему eclipse подчеркивает raw?
Посмотрите здесь:

Почему подчеркивает Location Manager? - Программирование Android
не могу понять почему подчеркивает Location Manager? раньше не подчеркивало?! т.е. даже в смысл замечания не могу въехать: ...

MediaPlayer выбор из Raw ? - Программирование Android
Можно ли в MediaPlayer предоставить пользователю возможность выбрать треки из raw , как это сделать? или сделать возможность копировать...

Подпапки в res\raw - Программирование Android
Привет всем. Уточните пожалуйста. Есть ListView, через который открываются локальные html-файлы приложения. Но файлов много и они...

Чтение документа не из res/raw - Программирование Android
Доброе время суток. Есть небольшой фрагмент кода который читает csv документ из res/raw setContentView(R.layout.activity_main); ...

Прочитать файл из res/raw - Программирование Android
Привет. Можно ли как нибуть прочитать файл из res/raw не с помощью openRawResource()? То есть получить его имя и прочитать самому, а не...

Запись строки в res/raw/file.txt - Программирование Android
Здравствуйте. Подскажите пожалуйста как можно записать строку (или переменную типа String), в raw ресурс - file.txt На одном из...

Ошибка при работе с файлом лежащим в res/raw - Программирование Android
Доброго времени суток! Написан код, на стадии компиляции ошибок нет, но, при переходе в нужное активити, программа вылетает. С активити...

Прочитать из res/raw текст размером 1мб за наименьшее время - Программирование Android
Здравствуйте. В программировании на Java новичок. Нужно загрузить в память из res/raw текстовый файл размером ~1mb Пробовал так: ...

Чем отличается Eclipse IDE for Java EE Developers от Eclipse IDE for Java Developers? - Программирование Android
чем отличается Eclipse IDE for Java EE Developers и Eclipse IDE for Java Developers? и какую лучше качать для разработки под андроид? ...

MediaPlayer R.raw: Сделать функцию в которой передавалось бы название песни и она воспроизводилась - Программирование Android
Такое дело, можно ли указать переменную в этом моменте? Просто я хочу сделать функцию в которой просто передавалось название песни и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru