---
name: "dtk_create_shape"
section: "3"
platform: "linux"
package: "libdrawtk-dev"
version: "2.0-2.1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/dtk_create_shape"
---

# dtk\_create\_shape(3)

Create and modify custom shape

## NAME

dtk\_create\_shape - Create and modify custom shape

## SYNOPSIS

**#include \<drawtk.h\>**

**dtk\_hshape dtk\_create\_shape(dtk\_hshape** *shp***,**\
                 **unsigned int** *ind\_num***, const float \****vertex\_array***,**\
                 **int** *filled***, const float \****color***);**\

## DESCRIPTION

**dtk\_create\_shape**() creates a shape specified by *ind\_num* vertices referenced by *vertex\_array*. In this array, the position parameters (x,y) of each vertex are packed together and the list should ordered, so that the array is filled in the following way: x0,y0,x1,y1,x2,y2,...,xN,yN.

*shp*, *filled* and *color* have the same usage and meaning as for other shape creation function:

- \*

  *shp* can be used to modify a previously created shape. If it is non-null, the handle will be used to modify the shape referenced by *shp*: no new shape is created and the returned value is ensured to be *shp* in case of success, *NULL* otherwise. If *shp* is *NULL*, the function will attempt to create a new shape.

- \*

  *filled* is set to 0 if the described shape should be a continuous line or a non-null value if the shape is supposed to be filled polygon. In the case of filled polygon request, the last point specified in *vertex\_array* will be connected with the first one.

- \*

  *color* should point to a 4 float array containing a normalized RGBA value (i.e. each component is between 0.0 and 1.0).

## RETURN VALUE

In case of success these functions return the handle to the newly created or modified shape. If the *shp* argument is non-null, the handle returned is the same value. In case of error, *NULL* is returned.

## SEE ALSO

[**dtk\_destroy\_shape**(3)](/dtk_destroy_shape/3.md)
