Exemplo n.º 1
0
/* We create a sprite for the title and an animation
 * with 6 frames.
 * We also create a mask image for a spot and fade-in
 * effect.
 */
static int prepare_title(struct game_title* title)
{
    int f;
    title->sprite = create_sprite(create_image("res/title.png"), 70, 15);
    if (title->sprite == NULL) goto error;
    title->bling = create_animation();
    if (title->bling == NULL) goto error;
    add_frame(title->bling, 0, SECOND / 2, NULL);
    for (f = 5; f >= 0; f--)
        add_frame(title->bling, f, SECOND / 10, NULL);
    title->bling->mode = FREEZE_LAST_FRAME;

    title->mask = create_target_image(192, 108, color_from_RGB(50, 50, 50));
    if (title->mask == NULL) goto error;
    set_blend_mode(title->mask, MULTIPLY);
    title->spot = create_image("res/spot.png");
    if (title->spot == NULL) goto error;
    set_blend_mode(title->spot, ADD);

    return 0;

error:
    ERROR("Unable to prepare title");
    cleanup_title(title);
    return -1;
}
Exemplo n.º 2
0
	// create the shadow object
	Shadow::Shadow(Renderer* renderer, const String& TextureFile, const Color& color)
		: Sprite(renderer, TextureFile)
	{
		set_color(color);
		set_blend_mode(BLEND_MODE_BLEND);
		m_need_redraw = true;
	}
Exemplo n.º 3
0
	Light::Light(Renderer* renderer, const String& TextureFile, const Color& color)
		: Sprite(renderer, TextureFile)
	{
		set_color(color);
		set_anchor(Point::HALF);
		set_blend_mode(BLEND_MODE_ADD);
		m_need_redraw = true;
	}
Exemplo n.º 4
0
    bool init( memory_pool &xdr_pool, size_t vb_offset )
    {
	uint32_t *ptr = (uint32_t *)xdr_pool.alloc( 0 );
	fifo = ptr;
	
	geom_desc_t pos, tx0, col;
	
	pos.stride = 24;
	pos.components = 3;
	pos.format = FLOAT;
	pos.type = POS0;
	pos.offset = 0;
	
	col.stride = 24;
	col.components = 4;
	col.format = HALF;
	col.type = COL0;
	col.offset = 16;
	
	tx0.stride = 24;
	tx0.components = 2;
	tx0.format = HALF;
	tx0.type = TEX0; 
	tx0.offset = 12;
	
	ptr += blend_enable( 1, ptr, Nv3D );
	
	blend_desc_t blend;
	blend.src_color_blend = ONE;
	blend.src_alpha_blend = ONE;
	blend.dst_color_blend = ONE;
	blend.dst_alpha_blend = ONE;
	
	
	ptr += set_blend_mode( &blend, ptr, Nv3D );    
	ptr += depth_enable( 0, 1, ptr, Nv3D );
	ptr += set_geometry_source( &pos, DDR, vb_offset, ptr, Nv3D );
	ptr += set_geometry_source( &col, DDR, vb_offset, ptr, Nv3D );
	ptr += set_geometry_source( &tx0, DDR, vb_offset, ptr, Nv3D );
	    
	cmd_size = ptr - fifo;
	xdr_pool.alloc( cmd_size * 4 );
	return true;
	
    }
Exemplo n.º 5
0
void particle_system::set_sorting(const bool state) {
	sorting = state;
	set_blend_mode(sorting ? gfx2d::BLEND_MODE::PRE_MUL : gfx2d::BLEND_MODE::ADD);
}
Exemplo n.º 6
0
 ~scoped_blend() {
   set_blend_mode(src_blend_, dest_blend_);
   set_alphablend_enable(enable_alpha_);
 }
Exemplo n.º 7
0
 void set_blend_pair() {
   set_blend_mode(BlendPair::src_type::value, BlendPair::dest_type::value);
 }