# HG changeset patch # User bdonegan # Date 1287740464 -3600 # Node ID 71a455a885b7b9567e98fc783fa46bdadf11464a # Parent 5b9bcf58d962a6221b2a30c93d9c352940d4901c Code to draw a line diff -r 5b9bcf58d962 -r 71a455a885b7 egl/sfegltest/src/eglrendering.cpp --- a/egl/sfegltest/src/eglrendering.cpp Fri Oct 22 10:13:49 2010 +0100 +++ b/egl/sfegltest/src/eglrendering.cpp Fri Oct 22 10:41:04 2010 +0100 @@ -21,11 +21,12 @@ /** Attributes to be passed into eglChooseConfig */ -const EGLint KColorRGB565AttribList[] = +const EGLint KColorRGBA8888AttribList[] = { - EGL_RED_SIZE, 5, - EGL_GREEN_SIZE, 6, - EGL_BLUE_SIZE, 5, + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_ALPHA_SIZE, 8, EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT, EGL_NONE @@ -178,7 +179,7 @@ EGLConfig chosenConfig = 0; // Choose the config to use - EGLCheckReturnError(eglChooseConfig(iDisplay, KColorRGB565AttribList, &chosenConfig, 1, &numConfigs)); + EGLCheckReturnError(eglChooseConfig(iDisplay, KColorRGBA8888AttribList, &chosenConfig, 1, &numConfigs)); RDebug::Printf("CEGLRendering::ConstructL 3"); if (numConfigs == 0) { @@ -210,20 +211,53 @@ CEGLRendering::EGLCheckReturnError(eglMakeCurrent(iDisplay, iSurface, iSurface, iContextVG)); RDebug::Printf("CEGLRendering::ConstructL 8"); - - VGfloat clearColour[] = { 0.5f, 0.5f, 0.5f, 1.0f }; - vgSetfv(VG_CLEAR_COLOR, 4, clearColour); - RDebug::Printf("CEGLRendering::ConstructL 9"); - vgSeti(VG_IMAGE_QUALITY, VG_IMAGE_QUALITY_NONANTIALIASED); - RDebug::Printf("CEGLRendering::ConstructL 10"); - vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); - RDebug::Printf("CEGLRendering::ConstructL 11"); - vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE); - RDebug::Printf("CEGLRendering::ConstructL 12"); - vgClear(0, 0, windowSize.iWidth, windowSize.iHeight); - RDebug::Printf("CEGLRendering::ConstructL 13"); + + // Now try and draw a line (blue) + static VGubyte const starSegments[] = + { + VG_MOVE_TO_ABS, + VG_LINE_TO_REL, + VG_CLOSE_PATH + }; + + static VGfloat const starCoords[] = + { + 110, 35, + 50, 160, + }; + + + VGfloat strokeColor[4] = {1.f, 0.f, 0.f, 1.f}; + + VGPaint strokePaint = vgCreatePaint(); + + vgSetParameteri(strokePaint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); + vgSetParameterfv(strokePaint, VG_PAINT_COLOR, 4, strokeColor); + + VGPath path = vgCreatePath(VG_PATH_FORMAT_STANDARD, + VG_PATH_DATATYPE_F, + 1.0f, // scale + 0.0f, // bias + 3, // segmentCapacityHint + 4, // coordCapacityHint + VG_PATH_CAPABILITY_ALL); + + ASSERT(vgGetError() == VG_NO_ERROR); + RDebug::Printf("vgCreatePath"); + + + vgAppendPathData(path, sizeof(starSegments), starSegments, starCoords); + ASSERT(vgGetError() == VG_NO_ERROR); + RDebug::Printf("vgAppendPathData"); + + // Draw the star directly using the OpenVG API. + vgDrawPath(path, VG_FILL_PATH | VG_STROKE_PATH); + ASSERT(vgGetError() == VG_NO_ERROR); + RDebug::Printf("vgDrawPath"); + eglSwapBuffers(iDisplay, iSurface); - RDebug::Printf("CEGLRendering::ConstructL 14"); + RDebug::Printf("eglSwapBuffers"); + EGLCheckError(); }