예제 #1
0
sge::systems::detail::custom_cursor::custom_cursor(
    sge::renderer::device::ffp &_renderer,
    sge::input::cursor::object &_cursor,
    sge::texture::part const &_texture,
    sge::systems::cursor_hotspot const _hotspot
)
    :
    texture_(
       _texture
    ),
    hotspot_{
    _hotspot
},
sprite_buffers_{
    _renderer,
    sge::sprite::buffers::option::dynamic
},
sprite_state_{
    _renderer,
    sprite_state_parameters()
},
sprite_{
    this->make_sprite(
        _cursor.position()
    )
},
move_connection_{
    _cursor.move_callback(
    sge::input::cursor::move_callback{
        [
            this
        ](
            sge::input::cursor::move_event const &_event
        )
        {
            sprite_ =
            this->make_sprite(
                _event.position()
            );
        }
    }
    )
}
{
}
예제 #2
0
sge::graph::object::object(
	sge::graph::position const &_position,
	sge::renderer::dim2 const &_dim,
	sge::renderer::device::ffp &_renderer,
	sge::graph::baseline _baseline,
	sge::graph::optional_axis_constraint const &_axis_constraint,
	sge::graph::color_scheme const &_color_scheme
)
:
	dim_(
		_dim),
	texture_(
		_renderer.create_planar_texture(
			sge::renderer::texture::planar_parameters(
				_dim,
				sge::renderer::texture::color_format(
					sge::image::color::format::rgba8,
					sge::renderer::texture::emulate_srgb::no
				),
				sge::renderer::texture::mipmap::off(),
				sge::renderer::resource_flags_field::null(),
				sge::renderer::texture::capabilities_field(
					sge::renderer::texture::capabilities_field::null()
				)
			)
		)
	),
	sprite_object_{
		sge::sprite::roles::pos{} =
			fcppt::math::vector::structure_cast<
				sprite_object::vector,
				fcppt::cast::float_to_int_fun
			>(
				_position.get()
			),
		sge::sprite::roles::texture0{} =
			sprite_object::texture_type{
				fcppt::make_shared_ptr<
					sge::texture::part_raw_ref
				>(
					*texture_
				)
			}
	},
	sprite_buffers_(
		_renderer,
		sge::sprite::buffers::option::dynamic
	),
	sprite_state_(
		_renderer,
		sprite_state_parameters()
	),
	data_buffer_(
		dim_.w()),
	baseline_(
		_baseline.get()),
	color_scheme_(
		_color_scheme),
	axis_constraint_(
		_axis_constraint),
	current_min_(
		std::min(
			0.,
			baseline_)
		),
	current_max_(
		1. +
		std::max(
			current_min_,
			baseline_)
		)
{
	sge::renderer::texture::scoped_planar_lock const lock(
		*texture_,
		sge::renderer::lock_mode::writeonly);

	fcppt::variant::apply_unary(
		sge::graph::detail::draw_visitor(
			*this),
		lock.value().get());
}