RetroArch
Classes | Macros | Functions | Variables
supereagle.c File Reference
#include "softfilter.h"
#include <stdlib.h>
Include dependency graph for supereagle.c:

Classes

struct  softfilter_thread_data
 
struct  filter_data
 

Macros

#define SUPEREAGLE_SCALE   2
 
#define supereagle_interpolate_xrgb8888(A, B)   ((((A) & 0xFEFEFEFE) >> 1) + (((B) & 0xFEFEFEFE) >> 1) + ((A) & (B) & 0x01010101))
 
#define supereagle_interpolate2_xrgb8888(A, B, C, D)   ((((A) & 0xFCFCFCFC) >> 2) + (((B) & 0xFCFCFCFC) >> 2) + (((C) & 0xFCFCFCFC) >> 2) + (((D) & 0xFCFCFCFC) >> 2) + (((((A) & 0x03030303) + ((B) & 0x03030303) + ((C) & 0x03030303) + ((D) & 0x03030303)) >> 2) & 0x03030303))
 
#define supereagle_interpolate_rgb565(A, B)   ((((A) & 0xF7DE) >> 1) + (((B) & 0xF7DE) >> 1) + ((A) & (B) & 0x0821));
 
#define supereagle_interpolate2_rgb565(A, B, C, D)   ((((A) & 0xE79C) >> 2) + (((B) & 0xE79C) >> 2) + (((C) & 0xE79C) >> 2) + (((D) & 0xE79C) >> 2) + (((((A) & 0x1863) + ((B) & 0x1863) + ((C) & 0x1863) + ((D) & 0x1863)) >> 2) & 0x1863))
 
#define supereagle_result(A, B, C, D)   (((A) != (C) || (A) != (D)) - ((B) != (C) || (B) != (D)));
 
#define supereagle_declare_variables(typename_t, in, nextline)
 
#define supereagle_function(result_cb, interpolate_cb, interpolate2_cb)
 

Functions

static unsigned supereagle_generic_input_fmts (void)
 
static unsigned supereagle_generic_output_fmts (unsigned input_fmts)
 
static unsigned supereagle_generic_threads (void *data)
 
static voidsupereagle_generic_create (const struct softfilter_config *config, unsigned in_fmt, unsigned out_fmt, unsigned max_width, unsigned max_height, unsigned threads, softfilter_simd_mask_t simd, void *userdata)
 
static void supereagle_generic_output (void *data, unsigned *out_width, unsigned *out_height, unsigned width, unsigned height)
 
static void supereagle_generic_destroy (void *data)
 
static void supereagle_generic_xrgb8888 (unsigned width, unsigned height, int first, int last, uint32_t *src, unsigned src_stride, uint32_t *dst, unsigned dst_stride)
 
static void supereagle_generic_rgb565 (unsigned width, unsigned height, int first, int last, uint16_t *src, unsigned src_stride, uint16_t *dst, unsigned dst_stride)
 
static void supereagle_work_cb_rgb565 (void *data, void *thread_data)
 
static void supereagle_work_cb_xrgb8888 (void *data, void *thread_data)
 
static void supereagle_generic_packets (void *data, struct softfilter_work_packet *packets, void *output, size_t output_stride, const void *input, unsigned width, unsigned height, size_t input_stride)
 
const struct softfilter_implementationsoftfilter_get_implementation (softfilter_simd_mask_t simd)
 

Variables

static const struct softfilter_implementation supereagle_generic
 

Macro Definition Documentation

◆ supereagle_declare_variables

#define supereagle_declare_variables (   typename_t,
  in,
  nextline 
)
Value:
typename_t product1a, product1b, product2a, product2b; \
const typename_t colorB1 = *(in - nextline + 0); \
const typename_t colorB2 = *(in - nextline + 1); \
const typename_t color4 = *(in - 1); \
const typename_t color5 = *(in + 0); \
const typename_t color6 = *(in + 1); \
const typename_t colorS2 = *(in + 2); \
const typename_t color1 = *(in + nextline - 1); \
const typename_t color2 = *(in + nextline + 0); \
const typename_t color3 = *(in + nextline + 1); \
const typename_t colorS1 = *(in + nextline + 2); \
const typename_t colorA1 = *(in + nextline + nextline + 0); \
const typename_t colorA2 = *(in + nextline + nextline + 1)
GLuint in
Definition: glext.h:10523

◆ supereagle_function

#define supereagle_function (   result_cb,
  interpolate_cb,
  interpolate2_cb 
)

◆ supereagle_interpolate2_rgb565

#define supereagle_interpolate2_rgb565 (   A,
  B,
  C,
 
)    ((((A) & 0xE79C) >> 2) + (((B) & 0xE79C) >> 2) + (((C) & 0xE79C) >> 2) + (((D) & 0xE79C) >> 2) + (((((A) & 0x1863) + ((B) & 0x1863) + ((C) & 0x1863) + ((D) & 0x1863)) >> 2) & 0x1863))

◆ supereagle_interpolate2_xrgb8888

#define supereagle_interpolate2_xrgb8888 (   A,
  B,
  C,
 
)    ((((A) & 0xFCFCFCFC) >> 2) + (((B) & 0xFCFCFCFC) >> 2) + (((C) & 0xFCFCFCFC) >> 2) + (((D) & 0xFCFCFCFC) >> 2) + (((((A) & 0x03030303) + ((B) & 0x03030303) + ((C) & 0x03030303) + ((D) & 0x03030303)) >> 2) & 0x03030303))

◆ supereagle_interpolate_rgb565

#define supereagle_interpolate_rgb565 (   A,
  B 
)    ((((A) & 0xF7DE) >> 1) + (((B) & 0xF7DE) >> 1) + ((A) & (B) & 0x0821));

◆ supereagle_interpolate_xrgb8888

#define supereagle_interpolate_xrgb8888 (   A,
  B 
)    ((((A) & 0xFEFEFEFE) >> 1) + (((B) & 0xFEFEFEFE) >> 1) + ((A) & (B) & 0x01010101))

◆ supereagle_result

#define supereagle_result (   A,
  B,
  C,
 
)    (((A) != (C) || (A) != (D)) - ((B) != (C) || (B) != (D)));

◆ SUPEREAGLE_SCALE

#define SUPEREAGLE_SCALE   2

Function Documentation

◆ softfilter_get_implementation()

const struct softfilter_implementation* softfilter_get_implementation ( softfilter_simd_mask_t  simd)
Here is the call graph for this function:

◆ supereagle_generic_create()

static void* supereagle_generic_create ( const struct softfilter_config config,
unsigned  in_fmt,
unsigned  out_fmt,
unsigned  max_width,
unsigned  max_height,
unsigned  threads,
softfilter_simd_mask_t  simd,
void userdata 
)
static
Here is the call graph for this function:

◆ supereagle_generic_destroy()

static void supereagle_generic_destroy ( void data)
static
Here is the call graph for this function:

◆ supereagle_generic_input_fmts()

static unsigned supereagle_generic_input_fmts ( void  )
static

◆ supereagle_generic_output()

static void supereagle_generic_output ( void data,
unsigned *  out_width,
unsigned *  out_height,
unsigned  width,
unsigned  height 
)
static

◆ supereagle_generic_output_fmts()

static unsigned supereagle_generic_output_fmts ( unsigned  input_fmts)
static

◆ supereagle_generic_packets()

static void supereagle_generic_packets ( void data,
struct softfilter_work_packet packets,
void output,
size_t  output_stride,
const void input,
unsigned  width,
unsigned  height,
size_t  input_stride 
)
static
Here is the call graph for this function:

◆ supereagle_generic_rgb565()

static void supereagle_generic_rgb565 ( unsigned  width,
unsigned  height,
int  first,
int  last,
uint16_t src,
unsigned  src_stride,
uint16_t dst,
unsigned  dst_stride 
)
static
Here is the caller graph for this function:

◆ supereagle_generic_threads()

static unsigned supereagle_generic_threads ( void data)
static

◆ supereagle_generic_xrgb8888()

static void supereagle_generic_xrgb8888 ( unsigned  width,
unsigned  height,
int  first,
int  last,
uint32_t src,
unsigned  src_stride,
uint32_t dst,
unsigned  dst_stride 
)
static
Here is the caller graph for this function:

◆ supereagle_work_cb_rgb565()

static void supereagle_work_cb_rgb565 ( void data,
void thread_data 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ supereagle_work_cb_xrgb8888()

static void supereagle_work_cb_xrgb8888 ( void data,
void thread_data 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ supereagle_generic

const struct softfilter_implementation supereagle_generic
static
Initial value:
= {
"SuperEagle",
"supereagle",
}
static unsigned supereagle_generic_output_fmts(unsigned input_fmts)
Definition: supereagle.c:55
static void supereagle_generic_output(void *data, unsigned *out_width, unsigned *out_height, unsigned width, unsigned height)
Definition: supereagle.c:88
#define SOFTFILTER_API_VERSION
Definition: softfilter.h:96
static unsigned supereagle_generic_input_fmts(void)
Definition: supereagle.c:50
static void * supereagle_generic_create(const struct softfilter_config *config, unsigned in_fmt, unsigned out_fmt, unsigned max_width, unsigned max_height, unsigned threads, softfilter_simd_mask_t simd, void *userdata)
Definition: supereagle.c:66
static unsigned supereagle_generic_threads(void *data)
Definition: supereagle.c:60
static void supereagle_generic_destroy(void *data)
Definition: supereagle.c:95
static void supereagle_generic_packets(void *data, struct softfilter_work_packet *packets, void *output, size_t output_stride, const void *input, unsigned width, unsigned height, size_t input_stride)
Definition: supereagle.c:295