libgpac
Documentation of the core library of GPAC
mpeg4_gradients.c File Reference
#include "nodes_stacks.h"
#include "texturing.h"
+ Include dependency graph for mpeg4_gradients.c:

Data Structures

struct  GradientStack
 

Macros

#define GRAD_TEXTURE_SIZE   128
 
#define GRAD_TEXTURE_HSIZE   64
 

Enumerations

enum  { GF_SR_TEXTURE_GRAD_REGISTERED = 1<<6 , GF_SR_TEXTURE_GRAD_NO_RGB = 1<<7 }
 

Functions

void GradientGetMatrix (GF_Node *transform, GF_Matrix2D *mat)
 
static void DestroyGradient (GF_Node *node, void *rs, Bool is_destroy)
 
static void UpdateLinearGradient (GF_TextureHandler *txh)
 
static void LG_ComputeMatrix (GF_TextureHandler *txh, GF_Rect *bounds, GF_Matrix2D *mat, Bool for_3d)
 
static void BuildLinearGradientTexture (GF_TextureHandler *txh)
 
void compositor_init_linear_gradient (GF_Compositor *compositor, GF_Node *node)
 
static void BuildRadialGradientTexture (GF_TextureHandler *txh)
 
static void UpdateRadialGradient (GF_TextureHandler *txh)
 
static void RG_ComputeMatrix (GF_TextureHandler *txh, GF_Rect *bounds, GF_Matrix2D *mat, Bool for_3d)
 
void compositor_init_radial_gradient (GF_Compositor *compositor, GF_Node *node)
 
GF_TextureHandlercompositor_mpeg4_get_gradient_texture (GF_Node *node)
 
void compositor_gradient_update (GF_TextureHandler *txh)
 

Data Structure Documentation

◆ GradientStack

struct GradientStack
+ Collaboration diagram for GradientStack:
Data Fields
GF_TextureHandler txh
char * tx_data

Macro Definition Documentation

◆ GRAD_TEXTURE_SIZE

#define GRAD_TEXTURE_SIZE   128

◆ GRAD_TEXTURE_HSIZE

#define GRAD_TEXTURE_HSIZE   64

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
GF_SR_TEXTURE_GRAD_REGISTERED 
GF_SR_TEXTURE_GRAD_NO_RGB 

Function Documentation

◆ GradientGetMatrix()

void GradientGetMatrix ( GF_Node transform,
GF_Matrix2D mat 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DestroyGradient()

static void DestroyGradient ( GF_Node node,
void *  rs,
Bool  is_destroy 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ UpdateLinearGradient()

static void UpdateLinearGradient ( GF_TextureHandler txh)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LG_ComputeMatrix()

static void LG_ComputeMatrix ( GF_TextureHandler txh,
GF_Rect bounds,
GF_Matrix2D mat,
Bool  for_3d 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ BuildLinearGradientTexture()

static void BuildLinearGradientTexture ( GF_TextureHandler txh)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_init_linear_gradient()

void compositor_init_linear_gradient ( GF_Compositor *  compositor,
GF_Node node 
)

!! Gradients are textures but are not registered as textures with the compositor in order to avoid updating too many textures each frame - gradients are only registered with the compositor when they are used in OpenGL, in order to release associated HW resource when no longer used

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ BuildRadialGradientTexture()

static void BuildRadialGradientTexture ( GF_TextureHandler txh)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ UpdateRadialGradient()

static void UpdateRadialGradient ( GF_TextureHandler txh)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RG_ComputeMatrix()

static void RG_ComputeMatrix ( GF_TextureHandler txh,
GF_Rect bounds,
GF_Matrix2D mat,
Bool  for_3d 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_init_radial_gradient()

void compositor_init_radial_gradient ( GF_Compositor *  compositor,
GF_Node node 
)

!! Gradients are textures but are not registered as textures with the compositor in order to avoid updating too many textures each frame - gradients are only registered with the compositor when they are used in OpenGL, in order to release associated HW resource when no longer used

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_mpeg4_get_gradient_texture()

GF_TextureHandler* compositor_mpeg4_get_gradient_texture ( GF_Node node)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_gradient_update()

void compositor_gradient_update ( GF_TextureHandler txh)
+ Here is the call graph for this function:
+ Here is the caller graph for this function: