gl: add necessary padding bytes to all public structs

This commit is contained in:
Matthew Waters 2016-09-28 15:20:25 +10:00 committed by Tim-Philipp Müller
parent 7cbac97b94
commit 1e8c7e0f31
20 changed files with 113 additions and 16 deletions

View file

@ -112,6 +112,8 @@ struct _GstGLBaseMemory
GDestroyNotify notify;
gpointer user_data;
gpointer _padding[GST_PADDING];
};
typedef struct _GstGLAllocationParams GstGLAllocationParams;
@ -174,6 +176,9 @@ struct _GstGLAllocationParams
gpointer wrapped_data;
/* GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_GPU_HANDLE only */
gpointer gl_handle;
/* <private> */
gpointer _padding[GST_PADDING];
};
gboolean gst_gl_allocation_params_init (GstGLAllocationParams * params,
@ -293,6 +298,8 @@ struct _GstGLBaseMemoryAllocator
/*< private >*/
GstAllocator parent;
GstMemoryCopyFunction fallback_mem_copy;
gpointer _padding[GST_PADDING];
};
/**
@ -315,13 +322,16 @@ struct _GstGLBaseMemoryAllocatorClass
GstGLBaseMemoryAllocatorCreateFunction create;
GstGLBaseMemoryAllocatorMapFunction map;
GstGLBaseMemoryAllocatorUnmapFunction unmap;
GstGLBaseMemoryAllocatorCopyFunction copy;
GstGLBaseMemoryAllocatorDestroyFunction destroy;
#if 0
GstGLBaseMemoryAllocatorFlushFunction flush; /* make CPU writes visible to the GPU */
GstGLBaseMemoryAllocatorInvalidateFunction invalidate; /* make GPU writes visible to the CPU */
#endif
GstGLBaseMemoryAllocatorUnmapFunction unmap;
GstGLBaseMemoryAllocatorCopyFunction copy;
GstGLBaseMemoryAllocatorDestroyFunction destroy;
/* <private> */
gpointer _padding[GST_PADDING];
};
#include <gst/gl/gl.h>

View file

@ -74,6 +74,9 @@ struct _GstGLBufferAllocationParams
guint gl_target;
guint gl_usage;
/* <private> */
gpointer _padding[GST_PADDING];
};
GstGLBufferAllocationParams * gst_gl_buffer_allocation_params_new (GstGLContext * context,
@ -90,6 +93,9 @@ GstGLBufferAllocationParams * gst_gl_buffer_allocation_params_new (GstGLCo
struct _GstGLBufferAllocator
{
GstGLBaseMemoryAllocator parent;
/* <private> */
gpointer _padding[GST_PADDING];
};
/**
@ -100,6 +106,9 @@ struct _GstGLBufferAllocator
struct _GstGLBufferAllocatorClass
{
GstGLBaseMemoryAllocatorClass parent_class;
/* <private> */
gpointer _padding[GST_PADDING];
};
#define GST_CAPS_FEATURE_MEMORY_GL_BUFFER "memory:GLBuffer"

View file

@ -47,7 +47,10 @@ struct _GstGLBufferPool
GstGLContext *context;
/* <private> */
GstGLBufferPoolPrivate *priv;
gpointer _padding[GST_PADDING];
};
/**
@ -58,6 +61,9 @@ struct _GstGLBufferPool
struct _GstGLBufferPoolClass
{
GstBufferPoolClass parent_class;
/* <private> */
gpointer _padding[GST_PADDING];
};
GstBufferPool *gst_gl_buffer_pool_new (GstGLContext * context);

View file

@ -76,6 +76,9 @@ struct _GstGLColorConvert
struct _GstGLColorConvertClass
{
GstObjectClass object_class;
/* <private> */
gpointer _padding[GST_PADDING];
};
/**

View file

@ -69,7 +69,6 @@ typedef enum
* Opaque #GstGLContext object
*/
struct _GstGLContext {
/*< private >*/
GstObject parent;
GstGLDisplay *display;
@ -77,9 +76,10 @@ struct _GstGLContext {
GstGLFuncs *gl_vtable;
gpointer _reserved[GST_PADDING];
/*< private >*/
GstGLContextPrivate *priv;
gpointer _reserved[GST_PADDING];
};
/**

View file

@ -51,6 +51,8 @@ struct _GstGLAsyncDebug
GstGLAsyncDebugLogGetMessage callback;
gpointer user_data;
GDestroyNotify notify;
gpointer _padding[GST_PADDING];
};
GstGLAsyncDebug * gst_gl_async_debug_new (void);

View file

@ -85,6 +85,9 @@ struct _GstGLDisplayClass
GstObjectClass object_class;
guintptr (*get_handle) (GstGLDisplay * display);
/* <private> */
gpointer _padding[GST_PADDING];
};
GstGLDisplay *gst_gl_display_new (void);

View file

@ -40,8 +40,8 @@
*
*/
#ifndef __COGL_FEATURE_PRIVATE_H
#define __COGL_FEATURE_PRIVATE_H
#ifndef __GST_GL_FEATURE_H__
#define __GST_GL_FEATURE_H__
#include <gst/gst.h>
@ -113,4 +113,4 @@ _gst_gl_feature_check_ext_functions (GstGLContext *context,
G_END_DECLS
#endif /* __COGL_FEATURE_PRIVATE_H */
#endif /* __GST_GL_FEATURE_H__ */

View file

@ -81,6 +81,8 @@ struct _GstGLFilter
GLuint vertex_buffer;
GLint draw_attr_position_loc;
GLint draw_attr_texture_loc;
gpointer _padding[GST_PADDING];
};
/**
@ -114,6 +116,8 @@ struct _GstGLFilterClass
/* useful to init and cleanup custom gl resources */
void (*display_init_cb) (GstGLFilter *filter);
void (*display_reset_cb) (GstGLFilter *filter);
gpointer _padding[GST_PADDING];
};
gboolean gst_gl_filter_filter_texture (GstGLFilter * filter, GstBuffer * inbuf,

View file

@ -49,18 +49,22 @@ struct _GstGLFramebuffer
{
GstObject object;
/* <private> */
GstGLContext *context;
/* <private> */
guint fbo_id;
GArray *attachments;
gpointer _padding[GST_PADDING];
GstGLFramebufferPrivate *priv;
};
struct _GstGLFramebufferClass
{
GstObjectClass object_class;
gpointer _padding[GST_PADDING];
};
GstGLFramebuffer * gst_gl_framebuffer_new (GstGLContext *context);

View file

@ -78,6 +78,9 @@ struct _GstGLMemory
gboolean texture_wrapped;
guint unpack_length;
guint tex_width;
/* <private> */
gpointer _padding[GST_PADDING];
};
typedef struct _GstGLVideoAllocationParams GstGLVideoAllocationParams;
@ -93,6 +96,9 @@ struct _GstGLVideoAllocationParams
GstVideoAlignment *valign;
GstGLTextureTarget target;
GstVideoGLTextureType tex_type;
/* <private> */
gpointer _padding[GST_PADDING];
};
gboolean gst_gl_video_allocation_params_init_full (GstGLVideoAllocationParams * params,
@ -165,6 +171,9 @@ void gst_gl_video_allocation_params_copy_data (GstGLVideoAllocatio
struct _GstGLMemoryAllocator
{
GstGLBaseMemoryAllocator parent;
/* <private> */
gpointer _padding[GST_PADDING];
};
/**
@ -179,6 +188,9 @@ struct _GstGLMemoryAllocatorClass
GstGLBaseMemoryAllocatorMapFunction map;
GstGLBaseMemoryAllocatorCopyFunction copy;
GstGLBaseMemoryAllocatorUnmapFunction unmap;
/* <private> */
gpointer _padding[GST_PADDING];
};
#include <gst/gl/gstglbasememory.h>

View file

@ -52,6 +52,9 @@ struct _GstGLMemoryPBO
/* <private> */
GstGLBuffer *pbo;
/* <private> */
gpointer _padding[GST_PADDING];
};
/**
@ -84,6 +87,9 @@ gboolean gst_gl_memory_pbo_copy_into_texture (GstGLMemoryPBO *gl_mem,
struct _GstGLMemoryPBOAllocator
{
GstGLMemoryAllocator parent;
/* <private> */
gpointer _padding[GST_PADDING];
};
/**
@ -94,6 +100,9 @@ struct _GstGLMemoryPBOAllocator
struct _GstGLMemoryPBOAllocatorClass
{
GstGLMemoryAllocatorClass parent_class;
/* <private> */
gpointer _padding[GST_PADDING];
};
G_END_DECLS

View file

@ -43,7 +43,10 @@ GType gst_gl_overlay_compositor_get_type (void);
struct _GstGLOverlayCompositor
{
GstObject parent;
GstGLContext *context;
/* <private> */
guint last_window_width;
guint last_window_height;
@ -52,6 +55,8 @@ struct _GstGLOverlayCompositor
GstGLShader *shader;
GLint position_attrib;
GLint texcoord_attrib;
gpointer _padding[GST_PADDING];
};
/**
@ -61,6 +66,9 @@ struct _GstGLOverlayCompositor
struct _GstGLOverlayCompositorClass
{
GstObjectClass object_class;
/* <private> */
gpointer _padding[GST_PADDING];
};
GstGLOverlayCompositor *gst_gl_overlay_compositor_new (GstGLContext * context);

View file

@ -42,6 +42,9 @@ struct _GstGLQuery
gboolean start_called;
GstGLAsyncDebug debug;
/* <private> */
gpointer _padding[GST_PADDING];
};
void gst_gl_query_init (GstGLQuery * query,

View file

@ -69,6 +69,9 @@ struct _GstGLRenderbuffer
/* <protected> */
gboolean renderbuffer_wrapped;
/* <private> */
gpointer _padding[GST_PADDING];
};
/**
@ -79,6 +82,9 @@ struct _GstGLRenderbuffer
struct _GstGLRenderbufferAllocator
{
GstGLBaseMemoryAllocator parent;
/* <private> */
gpointer _padding[GST_PADDING];
};
/**
@ -89,6 +95,9 @@ struct _GstGLRenderbufferAllocator
struct _GstGLRenderbufferAllocatorClass
{
GstGLBaseMemoryAllocatorClass parent_class;
/* <private> */
gpointer _padding[GST_PADDING];
};
#include <gst/gl/gstglbasememory.h>
@ -100,6 +109,9 @@ typedef struct
GstVideoGLTextureType renderbuffer_type;
guint width;
guint height;
/* <private> */
gpointer _padding[GST_PADDING];
} GstGLRenderbufferAllocationParams;
GstGLRenderbufferAllocationParams * gst_gl_renderbuffer_allocation_params_new (GstGLContext * context,

View file

@ -34,12 +34,13 @@ GType gst_gl_shader_get_type (void);
#define GST_IS_GL_SHADER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), GST_GL_TYPE_SHADER))
#define GST_GL_SHADER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GST_GL_TYPE_SHADER, GstGLShaderClass))
struct _GstGLShader {
/*< private >*/
struct _GstGLShader
{
GstObject parent;
GstGLContext *context;
/*< private >*/
GstGLShaderPrivate *priv;
gpointer _padding[GST_PADDING];

View file

@ -39,11 +39,11 @@ G_BEGIN_DECLS
*/
struct _GstGLSLStage
{
/*< private >*/
GstObject parent;
GstGLContext *context;
/*< private >*/
GstGLSLStagePrivate *priv;
gpointer _padding[GST_PADDING];
@ -56,8 +56,10 @@ struct _GstGLSLStage
*/
struct _GstGLSLStageClass
{
/*< private >*/
GstObjectClass parent;
/* <private> */
gpointer _padding[GST_PADDING];
};
GType gst_glsl_stage_get_type (void);

View file

@ -59,11 +59,11 @@ typedef enum
*/
struct _GstGLUpload
{
/* <private> */
GstObject parent;
GstGLContext *context;
/* <private> */
GstGLUploadPrivate *priv;
gpointer _reserved[GST_PADDING];
@ -77,6 +77,9 @@ struct _GstGLUpload
struct _GstGLUploadClass
{
GstObjectClass object_class;
/* <private> */
gpointer _padding[GST_PADDING];
};
GstCaps * gst_gl_upload_get_input_template_caps (void);

View file

@ -70,12 +70,18 @@ struct _GstGLViewConvert
GstGLFramebuffer *fbo;
/* <private> */
GstGLViewConvertPrivate *priv;
gpointer _padding[GST_PADDING];
};
struct _GstGLViewConvertClass
{
GstObjectClass object_class;
/* <private> */
gpointer _padding[GST_PADDING];
};
GType gst_gl_view_convert_get_type (void);