#ifndef PACKAGE
#endif
#ifndef PIXMAN_PRIVATE_H
#define PIXMAN_PRIVATE_H
#include "pixman.h"
#include <time.h>
#include <assert.h>
#include "pixman-compiler.h"
/*
* Images
*/
int x,
int y,
int width,
int x,
int y);
int x,
int y);
int x,
int y,
int width,
typedef enum
{
BITS,
} image_type_t;
typedef enum
{
int x,
int y,
int width,
int height);
struct image_common
{
set by a client */
* the image is used as a source
*/
int n_filter_params;
int alpha_origin_x;
int alpha_origin_y;
void * destroy_data;
};
struct source_image
{
};
struct solid_fill
{
};
struct gradient
{
int n_stops;
int stop_range;
int color_table_size;
};
struct linear_gradient
{
};
struct circle
{
};
struct radial_gradient
{
double cdx;
double cdy;
double dr;
double A;
};
struct conical_gradient
{
};
struct bits_image
{
int width;
int height;
/* Fetch a pixel, disregarding alpha maps, transformations etc. */
/* Fetch a pixel, taking alpha maps into account */
/* Fetch raw scanlines, with no regard for transformations, alpha maps etc. */
/* Store scanlines with no regard for alpha maps */
/* Store a scanline, taking alpha maps into account */
/* Used for indirect access to the bits */
};
union pixman_image
{
};
void
void
int x,
int y,
int width,
int x,
int y,
int width,
int height);
void
int x,
int y,
int width,
/* Even thought the type of buffer is uint32_t *, the function actually expects
* a uint64_t *buffer.
*/
void
int x,
int y,
int width,
void
int x,
int y,
int width,
void
int n_pixels);
/* Even though the type of buffer is uint32_t *, the function
* actually expects a uint64_t *buffer.
*/
void
int x,
int y,
int width,
_pixman_image_allocate (void);
const pixman_gradient_stop_t *stops,
int n_stops);
void
void
do \
{ \
int __stride__; \
\
(out_stride) = \
(line) = \
} while (0)
/*
* Gradient walker
*/
typedef struct
{
int num_stops;
unsigned int spread;
int need_reset;
void
unsigned int spread);
void
/*
* Edges
*/
#define RENDER_SAMPLES_X(x, n) \
((n) == 1? 0 : (pixman_fixed_frac (x) + \
X_FRAC_FIRST (n)) / STEP_X_SMALL (n))
void
pixman_edge_t * l,
pixman_edge_t * r,
pixman_fixed_t b);
/*
* Implementations
*/
int width);
int width);
int src_stride,
int dst_stride,
int src_bpp,
int dst_bpp,
int src_x,
int src_y,
int dst_x,
int dst_y,
int width,
int height);
int stride,
int bpp,
int x,
int y,
int width,
int height,
struct pixman_implementation_t
{
};
void
int width);
void
int width);
void
int width);
void
int width);
void
int src_stride,
int dst_stride,
int src_bpp,
int dst_bpp,
int src_x,
int src_y,
int dst_x,
int dst_y,
int width,
int height);
int stride,
int bpp,
int x,
int y,
int width,
int height,
/* Specific implementations */
#ifdef USE_MMX
#endif
#ifdef USE_SSE2
#endif
#ifdef USE_ARM_SIMD
#endif
#ifdef USE_ARM_NEON
#endif
#ifdef USE_VMX
#endif
_pixman_choose_implementation (void);
/*
* Utilities
*/
/* These "formats" both have depth 0, so they
* will never clash with any real ones
*/
typedef struct
{
/* Memory allocation helpers */
void *
pixman_malloc_ab (unsigned int n, unsigned int b);
void *
pixman_malloc_abc (unsigned int a, unsigned int b, unsigned int c);
pixman_multiply_overflows_int (unsigned int a, unsigned int b);
pixman_addition_overflows_int (unsigned int a, unsigned int b);
/* Compositing utilities */
void
void
int width);
void
int width);
/* Region Helpers */
/* Misc macros */
#ifndef FALSE
# define FALSE 0
#endif
#ifndef TRUE
#endif
#ifndef MIN
# define MIN(a, b) ((a < b) ? a : b)
#endif
#ifndef MAX
# define MAX(a, b) ((a > b) ? a : b)
#endif
/* Integer division that rounds towards -infinity */
#define DIV(a, b) \
((((a) < 0) == ((b) < 0)) ? (a) / (b) : \
((a) - (b) + 1 - (((b) < 0) << 1)) / (b))
/* Modulus that produces the remainder wrt. DIV */
/* Conversion between 8888 and 0565 */
#define CONVERT_8888_TO_0565(s) \
((((s) >> 3) & 0x001f) | \
(((s) >> 5) & 0x07e0) | \
(((s) >> 8) & 0xf800))
#define CONVERT_0565_TO_0888(s) \
(((((s) << 3) & 0xf8) | (((s) >> 2) & 0x7)) | \
((((s) << 5) & 0xfc00) | (((s) >> 1) & 0x300)) | \
((((s) << 8) & 0xf80000) | (((s) << 3) & 0x70000)))
#define PIXMAN_FORMAT_IS_WIDE(f) \
(PIXMAN_FORMAT_A (f) > 8 || \
PIXMAN_FORMAT_R (f) > 8 || \
PIXMAN_FORMAT_G (f) > 8 || \
PIXMAN_FORMAT_B (f) > 8)
/*
* Various debugging code
*/
#define DEBUG 0
#if DEBUG
do \
{ \
if (!(expr)) \
{ \
return; \
} \
} \
while (0)
do \
{ \
if (!(expr)) \
{ \
return (retval); \
} \
} \
while (0)
#else
do \
{ \
if (!(expr)) \
return; \
} \
while (0)
do \
{ \
if (!(expr)) \
return (retval); \
} \
while (0)
#endif
/*
* Timers
*/
#ifdef PIXMAN_TIMERS
static inline uint64_t
oil_profile_stamp_rdtsc (void)
{
return ts;
}
struct pixman_timer_t
{
int initialized;
const char * name;
};
extern int timer_defined;
{ \
\
{ \
} \
\
}
#endif /* PIXMAN_TIMERS */
#endif /* PIXMAN_PRIVATE_H */