Struct Graphics

Source
pub struct Graphics(/* private fields */);
Expand description

Graphics object. Represents graphic surface of the element.

Implementations§

Source§

impl Graphics

Save/restore graphics state.

Source

pub fn save_state(&mut self) -> Result<State<'_>>

Save the current graphics attributes on top of the internal state stack.

It will be restored automatically.

§Example:
use sciter::graphics::{Image, rgb};

let mut image = Image::new((100, 100), false).unwrap();
image.paint(|gfx, size| {
  let mut gfx = gfx.save_state()?;
  gfx
    .line_width(6.0)?
    .line_color(rgb(0xD4, 0, 0))?
    .fill_color(rgb(0xD4, 0, 0))?
    .line((-30., 0.), (83., 0.))?
    ;
  Ok(())
}).unwrap();
Source

pub fn flush(&mut self) -> Result<&mut Self>

Flush all pending graphic operations.

Source§

impl Graphics

Primitives drawing operations.

All operations use the current fill and stroke brushes.

Source

pub fn line(&mut self, start: Pos, end: Pos) -> Result<&mut Self>

Draw a line from the start to the end.

Source

pub fn rectangle( &mut self, left_top: Pos, right_bottom: Pos, ) -> Result<&mut Self>

Draw a rectangle.

Source

pub fn round_rect( &mut self, left_top: Pos, right_bottom: Pos, radius: Dim, ) -> Result<&mut Self>

Draw a rounded rectangle with the same corners.

Source

pub fn round_rect4( &mut self, left_top: Pos, right_bottom: Pos, radius: (Dim, Dim, Dim, Dim), ) -> Result<&mut Self>

Draw a rounded rectangle with different corners.

Source

pub fn ellipse(&mut self, xy: Pos, radii: Pos) -> Result<&mut Self>

Draw an ellipse.

Source

pub fn circle(&mut self, xy: Pos, radius: Dim) -> Result<&mut Self>

Draw a circle.

Source

pub fn arc( &mut self, xy: Pos, rxy: Pos, start: Angle, sweep: Angle, ) -> Result<&mut Self>

Draw a closed arc.

Source

pub fn star( &mut self, xy: Pos, r1: Dim, r2: Dim, start: Angle, rays: usize, ) -> Result<&mut Self>

Draw a star.

Source

pub fn polygon(&mut self, points: &[Pos]) -> Result<&mut Self>

Draw a closed polygon.

Source

pub fn polyline(&mut self, points: &[Pos]) -> Result<&mut Self>

Draw a polyline.

Source§

impl Graphics

Drawing attributes.

Source

pub fn fill_color(&mut self, color: Color) -> Result<&mut Self>

Set the color for solid fills for subsequent drawings.

Source

pub fn fill_mode(&mut self, is_even: bool) -> Result<&mut Self>

Set the even/odd rule of solid fills for subsequent drawings.

false means “fill non zero”.

Source

pub fn no_fill(&mut self) -> Result<&mut Self>

Disables fills for subsequent drawing operations.

Source

pub fn line_color(&mut self, color: Color) -> Result<&mut Self>

Set the line color for subsequent drawings.

Source

pub fn line_width(&mut self, width: Dim) -> Result<&mut Self>

Set the line width for subsequent drawings.

Source

pub fn line_cap(&mut self, style: LINE_CAP) -> Result<&mut Self>

Set the line cap mode (stroke dash ending style) for subsequent drawings.

It determines how the end points of every line are drawn. There are three possible values for this property and those are: BUTT, ROUND and SQUARE. By default this property is set to BUTT.

Source

pub fn line_join(&mut self, style: LINE_JOIN) -> Result<&mut Self>

Set the line join mode for subsequent drawings.

It determines how two connecting segments (of lines, arcs or curves) with non-zero lengths in a shape are joined together (degenerate segments with zero lengths, whose specified endpoints and control points are exactly at the same position, are skipped).

Source

pub fn no_line(&mut self) -> Result<&mut Self>

Disable outline drawing.

Source

pub fn line_linear_gradient( &mut self, start: Pos, end: Pos, c1: Color, c2: Color, ) -> Result<&mut Self>

Setup parameters of a linear gradient of lines.

Source

pub fn line_linear_gradients( &mut self, start: Pos, end: Pos, colors: &[(Color, Dim)], ) -> Result<&mut Self>

Setup parameters of a linear gradient of lines using multiple colors and color stop positions (0.0 ... 1.0).

Source

pub fn fill_linear_gradient( &mut self, c1: Color, c2: Color, start: Pos, end: Pos, ) -> Result<&mut Self>

Setup parameters of linear gradient fills.

Source

pub fn fill_linear_gradients( &mut self, colors: &[(Color, Dim)], start: Pos, end: Pos, ) -> Result<&mut Self>

Setup parameters of linear gradient fills using multiple colors and color stop positions (0.0 ... 1.0).

Source

pub fn line_radial_gradient( &mut self, point: Pos, radii: (Dim, Dim), c1: Color, c2: Color, ) -> Result<&mut Self>

Setup parameters of a radial gradient of lines.

Source

pub fn line_radial_gradients( &mut self, point: Pos, radii: (Dim, Dim), colors: &[(Color, Dim)], ) -> Result<&mut Self>

Setup parameters of a radial gradient of lines using multiple colors and color stop positions (0.0 ... 1.0).

Source

pub fn fill_radial_gradient( &mut self, c1: Color, c2: Color, point: Pos, radii: (Dim, Dim), ) -> Result<&mut Self>

Setup parameters of radial gradient of fills.

Source

pub fn fill_radial_gradients( &mut self, colors: &[(Color, Dim)], point: Pos, radii: (Dim, Dim), ) -> Result<&mut Self>

Setup parameters of radial gradient of fills using multiple colors and color stop positions (0.0 ... 1.0).

Source§

impl Graphics

Affine transformations.

Source

pub fn rotate(&mut self, radians: Angle) -> Result<&mut Self>

Rotate coordinate system on radians angle.

Source

pub fn rotate_around( &mut self, radians: Angle, center: Pos, ) -> Result<&mut Self>

Rotate coordinate system on radians angle around the center.

Source

pub fn translate(&mut self, to_xy: Pos) -> Result<&mut Self>

Move origin of coordinate system to the (to_x, to_y) point.

Source

pub fn scale(&mut self, sc_xy: Pos) -> Result<&mut Self>

Scale coordinate system.

(sc_x, sc_y) are the scale factors in the horizontal and vertical directions respectively.

Both parameters must be positive numbers. Values smaller than 1.0 reduce the unit size and values larger than 1.0 increase the unit size.

Source

pub fn skew(&mut self, sh_xy: Pos) -> Result<&mut Self>

Setup a skewing (shearing) transformation.

Source

pub fn transform( &mut self, scale_by: Pos, skew_by: Pos, move_to: Pos, ) -> Result<&mut Self>

Multiply the current transformation with the matrix described by the arguments.

It allows to scale, rotate, move and skew the context as described by:

   scale_x  skew_y   move_x
[  skew_x   scale_y  move_y  ]
   0        0        1

where

  • scale_x, scale_y: horizontal and vertical scaling,
  • skew_x, skew_y: horizontal and vertical shearing (skewing),
  • move_x, move_y: horizontal and vertical moving.
Source

pub fn transform_matrix( &mut self, m11: Dim, m12: Dim, m21: Dim, m22: Dim, dx: Dim, dy: Dim, ) -> Result<&mut Self>

Multiply the current transformation with the matrix described by the arguments.

It allows to scale, rotate, move and skew the context as described by:

   m11   m21  dx
[  m12   m22  dy  ]
   0     0    1
  • m11 (scale_x): horizontal scaling
  • m12 (skew_x): horizontal skewing
  • m21 (skew_y): vertical skewing
  • m22 (scale_y): vertical scaling
  • dx (move_x): horizontal moving
  • dy (move_y): vertical moving
Source§

impl Graphics

Coordinate space.

Source

pub fn world_to_screen(&self, xy: Pos) -> Result<Pos>

Translate coordinates.

Translates coordinates from a coordinate system defined by rotate(), scale(), translate() and/or skew() to the screen coordinate system.

Source

pub fn world_to_screen1(&self, length: Dim) -> Result<Dim>

Translate coordinates.

Translates coordinates from a coordinate system defined by rotate(), scale(), translate() and/or skew() to the screen coordinate system.

Source

pub fn screen_to_world(&self, xy: Pos) -> Result<Pos>

Translate coordinates.

Translates coordinates from screen coordinate system to the one defined by rotate(), scale(), translate() and/or skew().

Source

pub fn screen_to_world1(&self, length: Dim) -> Result<Dim>

Translate coordinates.

Translates coordinates from screen coordinate system to the one defined by rotate(), scale(), translate() and/or skew().

Source§

impl Graphics

Clipping.

Source

pub fn push_clip_box( &mut self, left_top: Pos, right_bottom: Pos, opacity: Option<f32>, ) -> Result<&mut Self>

Push a clip layer defined by the specified rectangle bounds.

Source

pub fn push_clip_path( &mut self, path: &Path, opacity: Option<f32>, ) -> Result<&mut Self>

Push a clip layer defined by the specified path bounds.

Source

pub fn pop_clip(&mut self) -> Result<&mut Self>

Pop a clip layer set by previous push_clip_box() or push_clip_path() calls.

Source§

impl Graphics

Image and path rendering.

Source

pub fn draw_text( &mut self, text: &Text, pos: Pos, point_of: u32, ) -> Result<&mut Self>

Renders a text layout object at the position (x,y).

point_of: number in the range 1..9, defines what part of text layout corresponds to point (x,y). For meaning of numbers see the numeric pad on keyboard.

Source

pub fn draw_path(&mut self, path: &Path, mode: DRAW_PATH) -> Result<&mut Self>

Draw the path object using current fill and stroke brushes.

Source

pub fn draw_image(&mut self, image: &Image, pos: Pos) -> Result<&mut Self>

Draw the whole image onto the graphics surface.

With the current transformation applied (scale, rotation).

Performance: expensive.

Source

pub fn draw_image_part( &mut self, image: &Image, dst_pos: Pos, dst_size: Size, src_pos: POINT, src_size: SIZE, ) -> Result<&mut Self>

Draw a part of the image onto the graphics surface.

With the current transformation applied (scale, rotation).

Performance: expensive.

Source

pub fn blend_image( &mut self, image: &Image, dst_pos: Pos, opacity: f32, ) -> Result<&mut Self>

Blend the image with the graphics surface.

No affine transformations.

Performance: less expensive.

Source

pub fn blend_image_part( &mut self, image: &Image, dst_pos: Pos, opacity: f32, src_pos: POINT, src_size: SIZE, ) -> Result<&mut Self>

Blend a part of the image with the graphics surface.

No affine transformations.

Performance: less expensive.

Trait Implementations§

Source§

impl Clone for Graphics

Copies graphics object.

All allocated objects are reference counted so copying is just a matter of increasing reference counts.

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Drop for Graphics

Destroy pointed graphics object.

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl From<*mut _HGFX> for Graphics

Construct Graphics object from HGFX handle.

Source§

fn from(hgfx: HGFX) -> Graphics

Converts to this type from the input type.
Source§

impl From<Graphics> for Value

Store the Graphics object as a Value.

Source§

fn from(i: Graphics) -> Value

Converts to this type from the input type.
Source§

impl FromValue for Graphics

Get an Graphics object contained in the Value.

Source§

fn from_value(v: &Value) -> Option<Graphics>

Converts value to specified type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.