1254 VGImageFormat imageInternalFormat = VG_sARGB_8888_PRE; |
1254 VGImageFormat imageInternalFormat = VG_sARGB_8888_PRE; |
1255 #else |
1255 #else |
1256 VGImageFormat imageInternalFormat = VG_sARGB_8888; |
1256 VGImageFormat imageInternalFormat = VG_sARGB_8888; |
1257 #endif |
1257 #endif |
1258 |
1258 |
1259 VGbitfield qualityFlags = VG_IMAGE_QUALITY_NONANTIALIASED; // | VG_IMAGE_QUALITY_BETTER | VG_IMAGE_QUALITY_FASTER; |
1259 VGbitfield qualityFlags = VG_IMAGE_QUALITY_NONANTIALIASED | VG_IMAGE_QUALITY_BETTER | VG_IMAGE_QUALITY_FASTER; |
1260 image = vgCreateImage(imageInternalFormat, aDestSize.iWidth, aDestSize.iHeight, qualityFlags); |
1260 image = vgCreateImage(imageInternalFormat, aDestSize.iWidth, aDestSize.iHeight, qualityFlags); |
1261 |
1261 |
1262 // Get the configs and displays etc. needed for creating the surface |
1262 // Get the configs and displays etc. needed for creating the surface |
1263 EGLDisplay display = iRenderPlugin.EglDisplay(); |
1263 EGLDisplay display = iRenderPlugin.EglDisplay(); |
1264 |
1264 |
1286 ASSERT(configCount > 0); |
1286 ASSERT(configCount > 0); |
1287 EGLConfig config = iRenderPlugin.EglConfig(0); |
1287 EGLConfig config = iRenderPlugin.EglConfig(0); |
1288 #endif |
1288 #endif |
1289 |
1289 |
1290 // The VGImage will act as the surface, so the drawing will go directly to the VGImage |
1290 // The VGImage will act as the surface, so the drawing will go directly to the VGImage |
|
1291 // Note - we do not call iRenderPlugin.CreatePBufferSurface since that could call |
|
1292 // CHuiEnv::HandleOutOfTextureMemory and that could cause this texture to be reset. |
1291 EGLSurface newSurface = eglCreatePbufferFromClientBuffer( |
1293 EGLSurface newSurface = eglCreatePbufferFromClientBuffer( |
1292 display, EGL_OPENVG_IMAGE, |
1294 display, EGL_OPENVG_IMAGE, |
1293 static_cast<EGLClientBuffer>(image), // Use the image as buffer |
1295 static_cast<EGLClientBuffer>(image), // Use the image as buffer |
1294 config, NULL); |
1296 config, NULL); |
1295 |
1297 |
1296 // Report error in debug mode, if failed creating the surface |
1298 // Report error in debug mode, if failed creating the surface |
1297 if ( newSurface == EGL_NO_SURFACE ) |
1299 if ( newSurface == EGL_NO_SURFACE ) |
1298 { |
1300 { |
1299 HUI_DEBUG1(_L("CHuiVg10Texture::CreateRenderedImage() - EGL Surface could not be created, eglErr: %04x"), eglGetError() ); |
1301 HUI_DEBUG1(_L("CHuiVg10Texture::CreateRenderedImage() - EGL Surface could not be created, eglErr: %04x"), eglGetError() ); |
1300 if ( image != VG_INVALID_HANDLE ) |
1302 if ( image != VG_INVALID_HANDLE ) |