-----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
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev