-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Kristian Høgsberg wrote:
> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
> index 0e6f69f..475aeab 100644
> --- a/src/mesa/main/fbobject.c
> +++ b/src/mesa/main/fbobject.c
> @@ -1008,6 +1008,30 @@ renderbuffer_storage(GLenum target, GLenum 
> internalFormat,
>      */
>  }
>  
> +#if FEATURE_OES_EGL_image
> +void GLAPIENTRY
> +_mesa_EGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES 
> image)
> +{
> +   GET_CURRENT_CONTEXT(ctx);
> +   ASSERT_OUTSIDE_BEGIN_END(ctx);
> +   struct gl_renderbuffer *rb;
> +
> +   if (target != GL_RENDERBUFFER_EXT) {

New uses of these enums should use the undecorated versions.

> +      _mesa_error(ctx, GL_INVALID_ENUM, 
> "EGLImageTargetRenderbufferStorageOES");
> +      return;
> +   }
> +
> +   rb = ctx->CurrentRenderbuffer;
> +   if (!rb) {
> +      _mesa_error(ctx, GL_INVALID_OPERATION, 
> "EGLImageTargetRenderbufferStorageOES");
> +      return;
> +   }
> +

Is there any sort of generic validation of the image that could be done
here?  I suspect not, but I'd hate to see the same validation code
duplicated in every driver.  Maybe that would better belong in a utility
function in src/mesa/drivers/dri/common.  Hmm...

> +   FLUSH_VERTICES(ctx, _NEW_BUFFERS);
> +
> +   ctx->Driver.EGLImageTargetRenderbufferStorage(ctx, rb, image);
> +}
> +#endif
>  
>  /**
>   * Helper function for _mesa_GetRenderbufferParameterivEXT() and
> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
> index da3c6f9..6b15c40 100644
> --- a/src/mesa/main/teximage.c
> +++ b/src/mesa/main/teximage.c
> @@ -2448,6 +2448,47 @@ _mesa_TexImage3DEXT( GLenum target, GLint level, 
> GLenum internalFormat,
>  }
>  
>  
> +#if FEATURE_OES_EGL_image
> +void GLAPIENTRY
> +_mesa_EGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image)
> +{
> +   GET_CURRENT_CONTEXT(ctx);
> +   ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
> +   struct gl_texture_object *texObj;
> +   struct gl_texture_image *texImage;
> +
> +   if (target != GL_TEXTURE_2D) {
> +      _mesa_error(ctx, GL_INVALID_ENUM, "glCompressedTexImage1D(target)");

That's probably the wrong error message. :)  Cut-and-paste for the lose.

> +      return;
> +   }
> +
> +   if (ctx->NewState & _MESA_NEW_TRANSFER_STATE)
> +      _mesa_update_state(ctx);
> +
> +   texObj = _mesa_get_current_tex_object(ctx, target);
> +   _mesa_lock_texture(ctx, texObj);
> +
> +   texImage = _mesa_get_tex_image(ctx, texObj, target, 0);
> +   if (!texImage) {
> +      _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage2D");

That's probably the wrong error message. :)  Cut-and-paste for the lose.

> +   } else {
> +      if (texImage->Data)
> +      ctx->Driver.FreeTexImageData( ctx, texImage );
> +
> +      ASSERT(texImage->Data == NULL);
> +      //clear_teximage_fields(texImage); /* not really needed, but helpful */
> +      ctx->Driver.EGLImageTargetTexture2D(ctx, target,
> +                                       texObj, texImage, image);
> +
> +      /* state update */
> +      texObj->_Complete = GL_FALSE;
> +      ctx->NewState |= _NEW_TEXTURE;
> +   }
> +   _mesa_unlock_texture(ctx, texObj);
> +
> +}
> +#endif
> +
>  
>  void GLAPIENTRY
>  _mesa_TexSubImage1D( GLenum target, GLint level,

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkt191oACgkQX1gOwKyEAw9VdgCePyOrp2dqrYdU3l8Dgh+7/5YE
mu4Amwd/D9vDVG+jEIoPt5EYRTPqgEXi
=Hq4M
-----END PGP SIGNATURE-----

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to