Classes | Defines | Functions

clanSWRender Display

Classes

class  CL_BlitARGB8SSE
 SSE accelerated rendering operations for ARGB8888. More...
class  CL_GraphicContext_SWRender
 SWRender Graphic Context. More...
class  CL_PixelBufferData
 Frame buffer or texture data for pixel commands. More...
class  CL_PixelCommand
 Interface for commands participating in the rendering pipeline. More...
class  CL_PixelThreadContext
 Thread specific rendering data for pixel commands. More...
class  CL_ProgramObject_SWRender
 SWRender Graphic Context. More...
class  CL_SoftwareProgram
 Interface for commands participating in drawing primitives. More...
class  CL_SWRenderTarget
 Display target for clanDisplay. More...

Defines

#define cl_blitargb8sse_blend_normal(dest, src, one, half)
#define cl_blitargb8sse_multiply_color(src, primcolor)
#define cl_blitargb8sse_sample_nearest(out0, tx, ty, data, width)
#define cl_blitargb8sse_texture_repeat(tx, ty, width, height)

Functions

static void CL_BlitARGB8SSE::blend_lcd (__m128i &dest, __m128i &src, __m128i &one, __m128i &half, __m128i &color)
static void CL_BlitARGB8SSE::blend_normal (__m128i &dest, __m128i &src, __m128i &one, __m128i &half)
static void CL_BlitARGB8SSE::blend_premultiplied (__m128i &dest, __m128i &src, __m128i &one, __m128i &half)
static void CL_BlitARGB8SSE::channels_to_pixels (__m128i &dest0, __m128i &dest1, __m128i &red, __m128i &green, __m128i &blue, __m128i &alpha)
static void CL_BlitARGB8SSE::copy_pixels (unsigned int *dest, const unsigned int *src)
 Operations.
static void CL_BlitARGB8SSE::load_pixel (__m128i &xmm, const unsigned int &pixel)
static void CL_BlitARGB8SSE::load_pixel_linear (__m128i &xmm, const unsigned int &p1, const unsigned int &p2, const unsigned int &p3, const unsigned int &p4, unsigned int ifracx, unsigned int ifracy)
static void CL_BlitARGB8SSE::load_pixels (__m128i &xmm, const unsigned int &p1, unsigned int &p2)
static void CL_BlitARGB8SSE::load_pixels (__m128i &xmm, const unsigned int *pixels)
static void CL_BlitARGB8SSE::multiply_color (__m128i &src, __m128i primcolor)
static void CL_BlitARGB8SSE::pixels_to_channels (__m128i &red, __m128i &green, __m128i &blue, __m128i &alpha, const __m128i &src0, const __m128i &src1)
static void CL_BlitARGB8SSE::set_color (__m128i &xmm, unsigned short r1, unsigned short g1, unsigned short b1, unsigned short a1, unsigned short r2, unsigned short g2, unsigned short b2, unsigned short a2)
static void CL_BlitARGB8SSE::set_color (__m128i &xmm, unsigned short red, unsigned short green, unsigned short blue, unsigned short alpha)
static void CL_BlitARGB8SSE::set_half (__m128i &xmm)
static void CL_BlitARGB8SSE::set_one (__m128i &xmm)
static void CL_BlitARGB8SSE::store_pixel (unsigned int &pixel, __m128i &xmm)
static void CL_BlitARGB8SSE::store_pixels (unsigned int *pixels, __m128i &xmm)

Define Documentation

#define cl_blitargb8sse_blend_normal (   dest,
  src,
  one,
  half 
)
Value:
{ \
        __m128i src_alpha, invsrc_alpha; \
\
        src_alpha = src; \
        src_alpha = _mm_shufflelo_epi16(src_alpha, 0xff); \
        src_alpha = _mm_shufflehi_epi16(src_alpha, 0xff); \
\
        invsrc_alpha = _mm_sub_epi16(one, src_alpha); \
\
        src = _mm_mullo_epi16(src, src_alpha); \
        dest = _mm_mullo_epi16(dest, invsrc_alpha); \
\
        dest = _mm_add_epi16(dest, src); \
        dest = _mm_add_epi16(dest, half); \
        dest = _mm_srli_epi16(dest, 8); \
}
#define cl_blitargb8sse_multiply_color (   src,
  primcolor 
)
Value:
{ \
        src = _mm_mullo_epi16(src, primcolor); \
        src = _mm_srli_epi16(src, 8); \
}
#define cl_blitargb8sse_sample_nearest (   out0,
  tx,
  ty,
  data,
  width 
)
Value:
{ \
        __attribute__ ((aligned(16))) unsigned int x[4], y[4]; \
        _mm_store_si128((__m128i*) x, _mm_srai_epi32(tx, 16)); \
        _mm_store_si128((__m128i*) y, _mm_srai_epi32(ty, 16)); \
        out0 = _mm_set_epi32(data[x[0]+y[0]*width], data[x[1]+y[1]*width], data[x[2]+y[2]*width], data[x[3]+y[3]*width]); \
}
#define cl_blitargb8sse_texture_repeat (   tx,
  ty,
  width,
  height 
)

Function Documentation

void CL_BlitARGB8SSE::blend_lcd ( __m128i &  dest,
__m128i &  src,
__m128i &  one,
__m128i &  half,
__m128i &  color 
) [inline, static, inherited]
void CL_BlitARGB8SSE::blend_normal ( __m128i &  dest,
__m128i &  src,
__m128i &  one,
__m128i &  half 
) [inline, static, inherited]
void CL_BlitARGB8SSE::blend_premultiplied ( __m128i &  dest,
__m128i &  src,
__m128i &  one,
__m128i &  half 
) [inline, static, inherited]
void CL_BlitARGB8SSE::channels_to_pixels ( __m128i &  dest0,
__m128i &  dest1,
__m128i &  red,
__m128i &  green,
__m128i &  blue,
__m128i &  alpha 
) [inline, static, inherited]
void CL_BlitARGB8SSE::copy_pixels ( unsigned int *  dest,
const unsigned int *  src 
) [inline, static, inherited]

Operations.

void CL_BlitARGB8SSE::load_pixel ( __m128i &  xmm,
const unsigned int &  pixel 
) [inline, static, inherited]
void CL_BlitARGB8SSE::load_pixel_linear ( __m128i &  xmm,
const unsigned int &  p1,
const unsigned int &  p2,
const unsigned int &  p3,
const unsigned int &  p4,
unsigned int  ifracx,
unsigned int  ifracy 
) [inline, static, inherited]
void CL_BlitARGB8SSE::load_pixels ( __m128i &  xmm,
const unsigned int &  p1,
unsigned int &  p2 
) [inline, static, inherited]
void CL_BlitARGB8SSE::load_pixels ( __m128i &  xmm,
const unsigned int *  pixels 
) [inline, static, inherited]
void CL_BlitARGB8SSE::multiply_color ( __m128i &  src,
__m128i  primcolor 
) [inline, static, inherited]
void CL_BlitARGB8SSE::pixels_to_channels ( __m128i &  red,
__m128i &  green,
__m128i &  blue,
__m128i &  alpha,
const __m128i &  src0,
const __m128i &  src1 
) [inline, static, inherited]
void CL_BlitARGB8SSE::set_color ( __m128i &  xmm,
unsigned short  r1,
unsigned short  g1,
unsigned short  b1,
unsigned short  a1,
unsigned short  r2,
unsigned short  g2,
unsigned short  b2,
unsigned short  a2 
) [inline, static, inherited]
void CL_BlitARGB8SSE::set_color ( __m128i &  xmm,
unsigned short  red,
unsigned short  green,
unsigned short  blue,
unsigned short  alpha 
) [inline, static, inherited]
void CL_BlitARGB8SSE::set_half ( __m128i &  xmm  )  [inline, static, inherited]
void CL_BlitARGB8SSE::set_one ( __m128i &  xmm  )  [inline, static, inherited]
void CL_BlitARGB8SSE::store_pixel ( unsigned int &  pixel,
__m128i &  xmm 
) [inline, static, inherited]
void CL_BlitARGB8SSE::store_pixels ( unsigned int *  pixels,
__m128i &  xmm 
) [inline, static, inherited]