Skip to content

Commit 2e69e6e

Browse files
committed
Cleanup redundant comments
1 parent 5c6d269 commit 2e69e6e

File tree

2 files changed

+20
-53
lines changed

2 files changed

+20
-53
lines changed

app/src/main/cpp/ImageMixer.cpp

Lines changed: 18 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,14 @@ static const char gVertexShader[] =
3030
static const char gFragmentShader[] =
3131
"#version 300 es\n"
3232
"precision mediump float;\n"
33-
"uniform vec2 iResolution;\n"
3433
"uniform sampler2D iChannel0;\n"
3534
"uniform sampler2D iChannel1;\n"
3635
"uniform sampler2D iChannel2;\n"
3736
"uniform sampler2D iChannel3;\n"
3837
"in vec2 vTexCoord;\n"
3938
"out vec4 fragmentColor;\n"
4039
"void main() {\n"
41-
" vec2 uv = vTexCoord; //vec2(vTexCoord.x / 5.0, vTexCoord.y / 5.0);\n"
40+
" vec2 uv = vTexCoord;\n"
4241
" vec4 fragColor0 = vec4(texture(iChannel0, uv).rgb, 1.0);\n"
4342
" vec4 fragColor1 = vec4(texture(iChannel1, uv).rgb, 1.0);\n"
4443
" vec4 fragColor2 = vec4(texture(iChannel2, uv).rgb, 1.0);\n"
@@ -48,33 +47,26 @@ static const char gFragmentShader[] =
4847

4948
ImageMixer::ImageMixer(jni::JNIEnv &env, jni::jint width, jni::jint height)
5049
{
51-
// Step 1 - Get the default display.
5250
eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
5351

54-
// Step 2 - Initialize EGL.
5552
EGLint eglMajVers, eglMinVers;
5653
eglInitialize(eglDisplay, &eglMajVers, &eglMinVers);
5754
LOGI("EGL init with version %d.%d", eglMajVers, eglMinVers);
5855

59-
60-
// Step 3 - Make OpenGL ES the current API.
6156
eglBindAPI(EGL_OPENGL_ES_API);
6257

63-
// Step 4 - Specify the required configuration attributes.
6458
EGLint configAttr[] = {
65-
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, // very important!
66-
EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, // we will create a pixelbuffer surface
59+
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
60+
EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
6761
EGL_RED_SIZE, 8,
6862
EGL_GREEN_SIZE, 8,
6963
EGL_BLUE_SIZE, 8,
7064
EGL_NONE
7165
};
7266

73-
// Step 5 - Find a config that matches all requirements.
7467
int iConfigs;
7568
EGLConfig eglConfig;
76-
eglChooseConfig(eglDisplay, configAttr, &eglConfig, 1,
77-
&iConfigs);
69+
eglChooseConfig(eglDisplay, configAttr, &eglConfig, 1, &iConfigs);
7870

7971
if (iConfigs != 1) {
8072
jni::ThrowIllegalStateException(env, "Error: eglChooseConfig(): config not found");
@@ -87,16 +79,13 @@ ImageMixer::ImageMixer(jni::JNIEnv &env, jni::jint width, jni::jint height)
8779
};
8880
eglSurface = eglCreatePbufferSurface(eglDisplay, eglConfig, surfaceAttr);
8981

90-
// Step 7 - Create a context.
91-
9282
const EGLint ctxAttr[] = {
93-
EGL_CONTEXT_CLIENT_VERSION, 3, // very important!
83+
EGL_CONTEXT_CLIENT_VERSION, 3, // Need to support GLSL 300
9484
EGL_NONE
9585
};
96-
eglContext = eglCreateContext(eglDisplay, eglConfig, NULL,
86+
eglContext = eglCreateContext(eglDisplay, eglConfig, nullptr,
9787
ctxAttr);
9888

99-
// Step 8 - Bind the context to the current thread
10089
eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext);
10190

10291
const GLubyte *glslVersion = glGetString(GL_SHADING_LANGUAGE_VERSION);
@@ -108,23 +97,20 @@ ImageMixer::ImageMixer(jni::JNIEnv &env, jni::jint width, jni::jint height)
10897
if (!glProgram) {
10998
jni::ThrowIllegalStateException(env, "Could not create program.");
11099
}
111-
gvPositionHandle = glGetAttribLocation(glProgram, "aPosition");
100+
glPositionShaderInput = (GLuint)glGetAttribLocation(glProgram, "aPosition");
112101
checkGlError("glGetAttribLocation");
113-
LOGI("glGetAttribLocation(\"aPosition\") = %d\n", gvPositionHandle);
114102

115103
glViewport(0, 0, width, height);
116104
checkGlError("glViewport");
117105

118-
glGenBuffers(1, &quadBuffer);
119-
glBindBuffer(GL_ARRAY_BUFFER, quadBuffer);
106+
glGenBuffers(1, &glQuadBuffer);
107+
glBindBuffer(GL_ARRAY_BUFFER, glQuadBuffer);
120108
glBufferData(GL_ARRAY_BUFFER, sizeof(quadVertices), quadVertices, GL_STATIC_DRAW);
121109
glBindBuffer(GL_ARRAY_BUFFER, GL_NONE);
122110
}
123111

124112
ImageMixer::~ImageMixer()
125113
{
126-
// TODO iterate over textures and unload them all
127-
128114
if (eglDisplay != EGL_NO_DISPLAY) {
129115
eglMakeCurrent(eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
130116
if (eglContext != EGL_NO_CONTEXT) {
@@ -181,8 +167,6 @@ void ImageMixer::convert(jni::JNIEnv &env, jni::String &outPath)
181167
if (!is_egl_context_creator_thread) {
182168
jni::ThrowIllegalStateException(env, "Called from thread which is different to one who created eglContext");
183169
}
184-
// commit the clear to the offscreen surface
185-
// eglSwapBuffers(eglDisplay, eglSurface);
186170

187171
glClearColor(1.0, 1.0, 1.0, 1.0);
188172
glClear(GL_COLOR_BUFFER_BIT);
@@ -211,35 +195,20 @@ void ImageMixer::convert(jni::JNIEnv &env, jni::String &outPath)
211195

212196
}
213197
}
214-
// bind resolution uniform
215-
GLint viewport[4];
216198

217-
glGetIntegerv(GL_VIEWPORT, viewport);
218-
GLsizei width = viewport[2], height = viewport[3];
219-
GLint resolutionName = glGetUniformLocation(glProgram, "iResolution");
220-
checkGlError("glGetUniformLocation");
221-
glUniform2f(resolutionName, (GLfloat)width, (GLfloat)height);
222-
checkGlError("glUniform2f");
223199

224-
glEnableVertexAttribArray(gvPositionHandle);
200+
glEnableVertexAttribArray(glPositionShaderInput);
225201
checkGlError("glEnableVertexAttribArray");
226202

227-
glBindBuffer(GL_ARRAY_BUFFER, quadBuffer);
203+
glBindBuffer(GL_ARRAY_BUFFER, glQuadBuffer);
228204
checkGlError("glBindBuffer");
229-
glVertexAttribPointer(
230-
gvPositionHandle, // attribute
231-
2, // number of elements per vertex, here (x,y)
232-
GL_FLOAT, // the type of each element
233-
GL_FALSE, // take our values as-is
234-
0, // no extra data between each position
235-
0 // offset of first element
236-
);
205+
glVertexAttribPointer(glPositionShaderInput, 2, GL_FLOAT, GL_FALSE, 0, 0);
237206
checkGlError("glVertexAttribPointer");
238207

239208
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
240209
checkGlError("glDrawArrays");
241210

242-
glDisableVertexAttribArray(gvPositionHandle);
211+
glDisableVertexAttribArray(glPositionShaderInput);
243212
checkGlError("glDisableVertexAttribArray");
244213

245214
for (GLuint unit = 0; unit < MAX_IMAGES; unit++) {
@@ -252,8 +221,9 @@ void ImageMixer::convert(jni::JNIEnv &env, jni::String &outPath)
252221
}
253222

254223
// read
255-
256-
const auto readPixels = std::get_temporary_buffer<uint32_t>(width * height);
224+
GLint viewport[4];
225+
glGetIntegerv(GL_VIEWPORT, viewport);
226+
const auto readPixels = std::get_temporary_buffer<uint32_t>(viewport[2] * viewport[3]);
257227
glReadPixels(viewport[0], viewport[1], viewport[2], viewport[3], GL_RGB, GL_UNSIGNED_BYTE, readPixels.first);
258228
checkGlError("glReadPixels");
259229

@@ -262,7 +232,8 @@ void ImageMixer::convert(jni::JNIEnv &env, jni::String &outPath)
262232

263233
// save
264234
std::string result_path = jni::Make<std::string>(env, outPath);
265-
bool success = (bool) SOIL_save_screenshot(result_path.c_str(), SOIL_SAVE_TYPE_BMP, viewport[0], viewport[1], viewport[2], viewport[3]);
235+
int success = SOIL_save_screenshot(result_path.c_str(), SOIL_SAVE_TYPE_BMP,
236+
viewport[0], viewport[1], viewport[2], viewport[3]);
266237
std::return_temporary_buffer(readPixels.first);
267238

268239
if (!success) {

app/src/main/cpp/ImageMixer.hpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,9 @@ class ImageMixer final {
3434
EGLContext eglContext = EGL_NO_CONTEXT;
3535

3636
GLuint glProgram = GL_NONE;
37-
GLint gvPositionHandle = GL_NONE;
37+
GLuint glPositionShaderInput = GL_NONE;
38+
GLuint glQuadBuffer = GL_NONE;
3839

39-
GLuint quadBuffer = GL_NONE;
40-
// GLfloat quadVertices[2*4] { -0.5f, -0.5f,
41-
// +0.5f, -0.5f,
42-
// -0.5f, +0.5f,
43-
// +0.5f, +0.5f };
4440
GLfloat quadVertices[2*4] { -1, -1,
4541
+1, -1,
4642
-1, +1,

0 commit comments

Comments
 (0)