if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${target}.ref.txt)
add_app_test(
NAME ${api}_${target}
- TARGET ${api}_${target}
- REF ${target}.ref.txt
+ TARGET ${api}_${target}
+ REF ${target}.ref.txt
)
endif ()
endforeach (target)
add_executable (${api}_${target} ${target}.c)
set_target_properties (${api}_${target} PROPERTIES OUTPUT_NAME ${target})
target_link_libraries (${api}_${target} eglut ${GLESV1_LIBRARIES})
+
+
+ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${target}.ref.txt)
+ add_app_test(
+ NAME ${api}_${target}
+ TARGET ${api}_${target}
+ REF ${target}.ref.txt
+ )
+ endif ()
endforeach (target)
static type_ClearColor fn_ClearColor;
static type_Clear fn_Clear;
+static void
+idle(void)
+{
+ exit(0);
+}
+
static void
draw(void)
{
fn_Clear(GL_COLOR_BUFFER_BIT);
+
+ eglutIdleFunc(idle);
}
static void *
#include <assert.h>
#include <math.h>
#include <stdio.h>
+#include <stdlib.h>
#include <GLES/gl.h> /* use OpenGL ES 1.x */
#include <GLES/glext.h>
#include <EGL/egl.h>
static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0;
+static void
+idle(void)
+{
+ exit(0);
+}
+
+
static void
draw(void)
{
}
glPopMatrix();
+
+ eglutIdleFunc(idle);
}
--- /dev/null
+eglBindAPI(api = EGL_OPENGL_ES_API) = EGL_TRUE
+glClearColor(red = 0.4, green = 0.4, blue = 0.4, alpha = 0)
+glViewport(x = 0, y = 0, width = 300, height = 300)
+glMatrixMode(mode = GL_PROJECTION)
+glLoadIdentity()
+glFrustumf(left = -1, right = 1, bottom = -1, top = 1, zNear = 5, zFar = 60)
+glMatrixMode(mode = GL_MODELVIEW)
+glLoadIdentity()
+glTranslatef(x = 0, y = 0, z = -10)
+glViewport(x = 0, y = 0, width = 300, height = 300)
+glMatrixMode(mode = GL_PROJECTION)
+glLoadIdentity()
+glFrustumf(left = -1, right = 1, bottom = -1, top = 1, zNear = 5, zFar = 60)
+glMatrixMode(mode = GL_MODELVIEW)
+glLoadIdentity()
+glTranslatef(x = 0, y = 0, z = -10)
+glViewport(x = 0, y = 0, width = 300, height = 300)
+glMatrixMode(mode = GL_PROJECTION)
+glLoadIdentity()
+glFrustumf(left = -1, right = 1, bottom = -1, top = 1, zNear = 5, zFar = 60)
+glMatrixMode(mode = GL_MODELVIEW)
+glLoadIdentity()
+glTranslatef(x = 0, y = 0, z = -10)
+glClear(mask = GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
+glPushMatrix()
+glRotatef(angle = 0, x = 1, y = 0, z = 0)
+glRotatef(angle = 0, x = 0, y = 1, z = 0)
+glRotatef(angle = 0, x = 0, y = 0, z = 1)
+glEnableClientState(array = GL_VERTEX_ARRAY)
+glEnableClientState(array = GL_COLOR_ARRAY)
+glColorPointer(size = 4, type = GL_FLOAT, stride = 0, pointer = blob(48))
+glVertexPointer(size = 2, type = GL_FLOAT, stride = 0, pointer = blob(24))
+glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3)
+glPointSizex(size = 1015792)
+glColorPointer(size = 4, type = GL_FLOAT, stride = 0, pointer = blob(48))
+glVertexPointer(size = 2, type = GL_FLOAT, stride = 0, pointer = blob(24))
+glDrawArrays(mode = GL_POINTS, first = 0, count = 3)
+glDisableClientState(array = GL_VERTEX_ARRAY)
+glDisableClientState(array = GL_COLOR_ARRAY)
+glPopMatrix()
if (X11_FOUND)
foreach (target ${targets})
- add_executable (${api}_${target} ${target}.c)
- set_target_properties (${api}_${target} PROPERTIES OUTPUT_NAME ${target})
- target_link_libraries (${api}_${target} ${EGL_LIBRARIES} ${GLESV2_LIBRARIES})
+ add_executable (${api}_${target} ${target}.c)
+ set_target_properties (${api}_${target} PROPERTIES OUTPUT_NAME ${target})
+ target_link_libraries (${api}_${target} ${EGL_LIBRARIES} ${GLESV2_LIBRARIES})
+
+ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${target}.ref.txt)
+ add_app_test(
+ NAME ${api}_${target}
+ TARGET ${api}_${target}
+ REF ${target}.ref.txt
+ )
+ endif ()
endforeach (target)
endif ()
if (redraw) {
draw();
eglSwapBuffers(egl_dpy, egl_surf);
+ exit(0);
}
}
}
--- /dev/null
+eglBindAPI(api = EGL_OPENGL_ES_API) = EGL_TRUE
+glClearColor(red = 0.4, green = 0.4, blue = 0.4, alpha = 0)
+glCreateShader(type = GL_FRAGMENT_SHADER) = 1
+glShaderSource(shader = 1, count = 1, string = &"varying vec4 v_color;
+void main() {
+ gl_FragColor = v_color;
+}
+", length = NULL)
+glCompileShader(shader = 1)
+glGetShaderiv(shader = 1, pname = GL_COMPILE_STATUS, params = &1)
+glCreateShader(type = GL_VERTEX_SHADER) = 2
+glShaderSource(shader = 2, count = 1, string = &"uniform mat4 modelviewProjection;
+attribute vec4 pos;
+attribute vec4 color;
+varying vec4 v_color;
+void main() {
+ gl_Position = modelviewProjection * pos;
+ v_color = color;
+}
+", length = NULL)
+glCompileShader(shader = 2)
+glGetShaderiv(shader = 2, pname = GL_COMPILE_STATUS, params = &1)
+glCreateProgram() = 3
+glAttachShader(program = 3, shader = 1)
+glAttachShader(program = 3, shader = 2)
+glBindAttribLocation(program = 3, index = 1, name = "pos")
+glBindAttribLocation(program = 3, index = 0, name = "color")
+glLinkProgram(program = 3)
+glGetProgramiv(program = 3, pname = GL_LINK_STATUS, params = &1)
+glUseProgram(program = 3)
+glBindAttribLocation(program = 3, index = 0, name = "pos")
+glBindAttribLocation(program = 3, index = 1, name = "color")
+glBindAttribLocation(program = 3, index = 0, name = "pos")
+glBindAttribLocation(program = 3, index = 1, name = "color")
+glLinkProgram(program = 3)
+glGetUniformLocation(program = 3, name = "modelviewProjection") = 0
+glViewport(x = 0, y = 0, width = 300, height = 300)
+glViewport(x = 0, y = 0, width = 300, height = 300)
+glViewport(x = 0, y = 0, width = 300, height = 300)
+glUniformMatrix4fv(location = 0, count = 1, transpose = false, value = {0.5, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 1})
+glClear(mask = GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
+glEnableVertexAttribArray(index = 0)
+glEnableVertexAttribArray(index = 1)
+glVertexAttribPointer(index = 0, size = 2, type = GL_FLOAT, normalized = false, stride = 0, pointer = blob(24))
+glVertexAttribPointer(index = 1, size = 3, type = GL_FLOAT, normalized = false, stride = 0, pointer = blob(36))
+glDrawArrays(mode = GL_TRIANGLES, first = 0, count = 3)
+glDisableVertexAttribArray(index = 0)
+glDisableVertexAttribArray(index = 1)
if p.returncode:
self.skip('application returned code %i' % p.returncode)
+ api_map = {
+ 'gl': 'gl',
+ 'egl': 'egl',
+ 'gles1': 'egl',
+ 'gles2': 'egl',
+ }
+
def trace(self):
if self.trace_file is None:
self.trace_file = os.path.abspath(os.path.join(self.results, self.name + '.trace'))
apitrace = _get_build_program('apitrace')
cmd = [
apitrace, 'trace',
- '--api', self.api,
+ '--api', self.api_map[self.api],
'--output', self.trace_file,
'--'
] + cmd
ref_line = ref.readline().rstrip()
for line in p.stdout:
line = line.rstrip()
+ print line
mo = self.call_re.match(line)
- assert mo
if mo:
call_no = int(mo.group(1))
function_name = mo.group(2)
if function_name in ('glFlush', 'glFinish'):
flushes += 1
src_line = line[mo.start(2):]
- if ref_line:
- if src_line == ref_line:
- sys.stdout.write(src_line + '\n')
- ref_line = ref.readline().rstrip()
- src_lines = []
- else:
- src_lines.append(src_line)
+ else:
+ src_line = line
+ if ref_line:
+ if src_line == ref_line:
+ sys.stdout.write(src_line + '\n')
+ ref_line = ref.readline().rstrip()
+ src_lines = []
+ else:
+ src_lines.append(src_line)
p.wait()
if p.returncode != 0: