xine-lib 1.2.13-20230125hg15249
|
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include "goom_config.h"
#include "goom_graphic.h"
#include "ifs.h"
#include "goom_tools.h"
Data Structures | |
struct | _ifsPoint |
struct | Similitude_Struct |
struct | Fractal_Struct |
struct | _IFS_DATA |
Macros | |
#define | MODE_ifs |
#define | PROGCLASS "IFS" |
#define | HACK_INIT init_ifs |
#define | HACK_DRAW draw_ifs |
#define | ifs_opts xlockmore_opts |
#define | DEFAULTS |
#define | SMOOTH_COLORS |
#define | LRAND() ((long) (goom_random(goomInfo->gRandom) & 0x7fffffff)) |
#define | NRAND(n) ((int) (LRAND() % (n))) |
#define | MAXRAND (((float)(RAND_MAX<16)+((float)RAND_MAX)+1.0f)/127.0f) |
#define | FIX 12 |
#define | UNIT ( 1<<FIX ) |
#define | MAX_SIMI 6 |
#define | MAX_DEPTH_2 10 |
#define | MAX_DEPTH_3 6 |
#define | MAX_DEPTH_4 4 |
#define | MAX_DEPTH_5 2 |
#define | DBL_To_F_PT(x) (F_PT)( (DBL)(UNIT)*(x) ) |
#define | RAND() goom_random(goomInfo->gRandom) |
#define | MOD_MER 0 |
#define | MOD_FEU 1 |
#define | MOD_MERVER 2 |
Typedefs | |
typedef struct _ifsPoint | IFSPoint |
typedef float | DBL |
typedef int | F_PT |
typedef struct Similitude_Struct | SIMI |
typedef struct Fractal_Struct | FRACTAL |
typedef struct _IFS_DATA | IfsData |
Functions | |
static DBL | Gauss_Rand (PluginInfo *goomInfo, DBL c, DBL A, DBL S) |
static DBL | Half_Gauss_Rand (PluginInfo *goomInfo, DBL c, DBL A, DBL S) |
static void | Random_Simis (PluginInfo *goomInfo, FRACTAL *F, SIMI *Cur, int i) |
static void | free_ifs_buffers (FRACTAL *Fractal) |
static void | free_ifs (FRACTAL *Fractal) |
static void | init_ifs (PluginInfo *goomInfo, IfsData *data) |
static void | Transform (SIMI *Simi, F_PT xo, F_PT yo, F_PT *x, F_PT *y) |
static void | Trace (FRACTAL *F, F_PT xo, F_PT yo, IfsData *data) |
static void | Draw_Fractal (IfsData *data) |
static IFSPoint * | draw_ifs (PluginInfo *goomInfo, int *nbpt, IfsData *data) |
static void | release_ifs (IfsData *data) |
static void | ifs_update (PluginInfo *goomInfo, Pixel *data, Pixel *back, int increment, IfsData *fx_data) |
static void | ifs_vfx_apply (VisualFX *_this, Pixel *src, Pixel *dest, PluginInfo *goomInfo) |
static void | ifs_vfx_init (VisualFX *_this, PluginInfo *info) |
static void | ifs_vfx_free (VisualFX *_this) |
VisualFX | ifs_visualfx_create (void) |
Referenced by Draw_Fractal().
#define DEFAULTS |
#define FIX 12 |
Referenced by Trace(), and Transform().
#define HACK_DRAW draw_ifs |
#define HACK_INIT init_ifs |
#define ifs_opts xlockmore_opts |
#define LRAND | ( | ) | ((long) (goom_random(goomInfo->gRandom) & 0x7fffffff)) |
Referenced by Gauss_Rand(), and Half_Gauss_Rand().
#define MAX_DEPTH_2 10 |
Referenced by init_ifs().
#define MAX_DEPTH_3 6 |
Referenced by init_ifs().
#define MAX_DEPTH_4 4 |
Referenced by init_ifs().
#define MAX_DEPTH_5 2 |
Referenced by init_ifs().
#define MAX_SIMI 6 |
Referenced by init_ifs().
#define MAXRAND (((float)(RAND_MAX<16)+((float)RAND_MAX)+1.0f)/127.0f) |
Referenced by Gauss_Rand(), and Half_Gauss_Rand().
#define MOD_FEU 1 |
#define MOD_MER 0 |
#define MOD_MERVER 2 |
#define MODE_ifs |
#define NRAND | ( | n | ) | ((int) (LRAND() % (n))) |
Referenced by Gauss_Rand(), and init_ifs().
#define PROGCLASS "IFS" |
#define RAND | ( | ) | goom_random(goomInfo->gRandom) |
Referenced by ifs_update().
#define SMOOTH_COLORS |
#define UNIT ( 1<<FIX ) |
typedef float DBL |
typedef int F_PT |
typedef struct Fractal_Struct FRACTAL |
typedef struct Similitude_Struct SIMI |
|
static |
References Similitude_Struct::A, Similitude_Struct::A2, _IFS_DATA::Buf, Fractal_Struct::Buffer1, Fractal_Struct::Buffer2, Similitude_Struct::c_x, Similitude_Struct::c_y, Fractal_Struct::Components, Similitude_Struct::Ct, Similitude_Struct::Ct2, _IFS_DATA::Cur_F, Fractal_Struct::Cur_Pt, _IFS_DATA::Cur_Pt, Similitude_Struct::Cx, Similitude_Struct::Cy, DBL_To_F_PT, Fractal_Struct::Nb_Simi, Similitude_Struct::r, Similitude_Struct::R, Similitude_Struct::r2, Similitude_Struct::R2, _IFS_DATA::Root, Similitude_Struct::St, Similitude_Struct::St2, Trace(), and Transform().
Referenced by draw_ifs().
|
static |
References Similitude_Struct::A, Similitude_Struct::A2, Fractal_Struct::Buffer1, Fractal_Struct::Buffer2, Similitude_Struct::c_x, Similitude_Struct::c_y, Fractal_Struct::Col, Fractal_Struct::Components, Fractal_Struct::Count, _IFS_DATA::Cur_Pt, Draw_Fractal(), Fractal_Struct::Nb_Simi, NULL, Similitude_Struct::r, Similitude_Struct::r2, Random_Simis(), _IFS_DATA::Root, Fractal_Struct::Speed, and v.
Referenced by ifs_update().
|
static |
References free_ifs_buffers().
Referenced by init_ifs(), and release_ifs().
|
static |
References Fractal_Struct::Buffer1, Fractal_Struct::Buffer2, and NULL.
Referenced by free_ifs(), and init_ifs().
|
static |
References LRAND, MAXRAND, and NRAND.
Referenced by Random_Simis().
|
static |
References LRAND, and MAXRAND.
Referenced by Random_Simis().
|
static |
References ALPHA, BLEU, draw_ifs(), emms, height, _PLUGIN_INFO::_SIZE_TYPE::height, MOD_FEU, MOD_MER, MOD_MERVER, mode(), movd_m2r, movd_r2m, paddusb_r2r, punpckldq_r2r, RAND, ROUGE, _PLUGIN_INFO::screen, v, VERT, width, _PLUGIN_INFO::_SIZE_TYPE::width, _ifsPoint::x, and _ifsPoint::y.
Referenced by ifs_vfx_apply().
|
static |
VISUAL_FX WRAPPER FOR IFS
References _VISUAL_FX::fx_data, _PLUGIN_INFO::ifs_incr, ifs_update(), init_ifs(), _IFS_DATA::initalized, and _PLUGIN_INFO::update.
Referenced by ifs_visualfx_create().
|
static |
References _VISUAL_FX::fx_data, and release_ifs().
Referenced by ifs_visualfx_create().
|
static |
References _VISUAL_FX::fx_data, _IFS_DATA::initalized, NULL, and _IFS_DATA::Root.
Referenced by ifs_visualfx_create().
VisualFX ifs_visualfx_create | ( | void | ) |
References ifs_vfx_apply(), ifs_vfx_free(), ifs_vfx_init(), and _VISUAL_FX::init.
Referenced by goom_init().
|
static |
References Fractal_Struct::Buffer1, Fractal_Struct::Buffer2, Fractal_Struct::Col, Fractal_Struct::Components, Fractal_Struct::Count, Fractal_Struct::Cur_Pt, Fractal_Struct::Depth, Fractal_Struct::dr2_mean, Fractal_Struct::dr_mean, free_ifs(), free_ifs_buffers(), height, _PLUGIN_INFO::_SIZE_TYPE::height, Fractal_Struct::Height, Fractal_Struct::Lx, Fractal_Struct::Ly, MAX_DEPTH_2, MAX_DEPTH_3, MAX_DEPTH_4, MAX_DEPTH_5, Fractal_Struct::Max_Pt, MAX_SIMI, Fractal_Struct::Nb_Simi, NRAND, NULL, Fractal_Struct::r_mean, Random_Simis(), _IFS_DATA::Root, _PLUGIN_INFO::screen, Fractal_Struct::Speed, width, _PLUGIN_INFO::_SIZE_TYPE::width, and Fractal_Struct::Width.
Referenced by ifs_vfx_apply().
|
static |
References Similitude_Struct::A, Similitude_Struct::A2, Similitude_Struct::c_x, Similitude_Struct::c_y, Fractal_Struct::dr2_mean, Fractal_Struct::dr_mean, Gauss_Rand(), Half_Gauss_Rand(), Similitude_Struct::r, Similitude_Struct::r2, and Fractal_Struct::r_mean.
Referenced by draw_ifs(), and init_ifs().
|
static |
References free_ifs(), NULL, and _IFS_DATA::Root.
Referenced by ifs_vfx_free().
References _IFS_DATA::Buf, Fractal_Struct::Components, _IFS_DATA::Cur_F, _IFS_DATA::Cur_Pt, Fractal_Struct::Depth, FIX, Fractal_Struct::Lx, Fractal_Struct::Ly, Fractal_Struct::Nb_Simi, Trace(), Transform(), _ifsPoint::x, and _ifsPoint::y.
Referenced by Draw_Fractal(), and Trace().
References Similitude_Struct::Ct, Similitude_Struct::Ct2, Similitude_Struct::Cx, Similitude_Struct::Cy, FIX, Similitude_Struct::R, Similitude_Struct::R2, Similitude_Struct::St, and Similitude_Struct::St2.
Referenced by Draw_Fractal(), and Trace().