> ## Documentation Index
> Fetch the complete documentation index at: https://sharkmenu.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Shark API's Drawing

> Esta documentação detalha as APIs de desenho disponíveis no Executor do Shark.

### SharkAPI Drawing - DrawRect

API que desenha um retângulo na tela.

```lua DrawRect.lua theme={null}
SharkAPI.Drawing.DrawRect('rect_example', 100, 100, 150, 150, 255, 0, 0, 255, 5.0, 10);
```

| Parâmetro | Descrição                          |
| --------- | ---------------------------------- |
| id        | Identificador único do retângulo   |
| x, y      | Posição do retângulo               |
| width     | Largura do retângulo               |
| height    | Altura do retângulo                |
| r, g, b   | Valores de cor (RGB)               |
| a         | Valor Alpha (transparência)        |
| rounding  | Valor de arredondamento dos cantos |
| order     | Ordem de renderização              |

***

### SharkAPI Drawing - DrawText

API que desenha um texto na tela.

```lua DrawText.lua theme={null}
SharkAPI.Drawing.DrawText('text_example', 'Texto Exemplo', 103, 103, 15.0, false, 220, 220, 220, 255, 'default', 12);
```

| Parâmetro | Descrição                                     |
| --------- | --------------------------------------------- |
| id        | Identificador único do texto                  |
| text      | Texto a ser exibido                           |
| x, y      | Posição do texto                              |
| size      | Tamanho da fonte                              |
| centered  | Alinhamento do texto (true para centralizado) |
| r, g, b   | Valores de cor (RGB)                          |
| a         | Valor Alpha (transparência)                   |
| fontName  | Nome da fonte (pode ser custom ou padrão)     |
| order     | Ordem de renderização                         |

***

### SharkAPI Drawing - DrawImage

API que desenha uma imagem na tela.

```lua DrawImage.lua theme={null}
SharkAPI.Drawing.DrawImage('image_example', 'imageTest', 100, 300, 100, 60, 255, 255, 255, 255);
```

| Parâmetro | Descrição                                |
| --------- | ---------------------------------------- |
| id        | Identificador único da imagem            |
| imageName | Nome da imagem (importada anteriormente) |
| x, y      | Posição da imagem                        |
| width     | Largura da imagem                        |
| height    | Altura da imagem                         |
| r, g, b   | Valores de cor (RGB)                     |
| a         | Valor Alpha (transparência)              |
| order     | Ordem de renderização                    |

***

### SharkAPI Fonts - ImportFontFromUrl

API que importa uma fonte personalizada a partir de uma URL.

```lua ImportFontFromUrl.lua theme={null}
SharkAPI.Fonts.ImportFontFromUrl('sedanSC', 15.0, 'http://108.165.179.33:30120/SedanSC.ttf');
```

| Parâmetro | Descrição               |
| --------- | ----------------------- |
| fontName  | Nome da fonte           |
| fontSize  | Tamanho da fonte        |
| fontUrl   | URL do arquivo da fonte |

***

### SharkAPI Images - ImportImageFromUrl

API que importa uma imagem a partir de uma URL.

```lua ImportImageFromUrl.lua theme={null}
SharkAPI.Images.ImportImageFromUrl('imageTest', 'https://ofuxico.com.br/wp-content/uploads/2021/06/bandeira-do-orgulho-lgbtqia.jpg');
```

| Parâmetro | Descrição      |
| --------- | -------------- |
| imageName | Nome da imagem |
| imageUrl  | URL da imagem  |

***

### SharkAPI Fonts - GetTextWidthSize

API que retorna o tamanho de um texto com base na fonte e no tamanho especificados.

```lua GetTextWidthSize.lua theme={null}
local textSize = SharkAPI.Fonts.GetTextWidthSize('Texto Exemplo !', 15.0);
```

| Parâmetro | Descrição                 |
| --------- | ------------------------- |
| text      | O texto que deseja medir  |
| fontSize  | Tamanho da fonte do texto |

***

### SharkAPI Drawing - DrawLine

API que desenha uma linha na tela.

```lua DrawLine.lua theme={null}
SharkAPI.Drawing.DrawLine('line_example', 100, 100, 200, 200, 255, 0, 0, 255);
```

| Parâmetro | Descrição                               |
| --------- | --------------------------------------- |
| id        | Identificador único da linha            |
| x1, y1    | Coordenadas da posição inicial da linha |
| x2, y2    | Coordenadas da posição final da linha   |
| r, g, b   | Valores de cor (RGB)                    |
| a         | Valor Alpha (transparência)             |

***

### SharkAPI Drawing - DrawCircle

API que desenha um círculo na tela.

```lua DrawCircle.lua theme={null}
SharkAPI.Drawing.DrawCircle('circle_example', 150, 150, 50, 32, 2.0, 255, 0, 0, 255, false);
```

| Parâmetro | Descrição                                     |
| --------- | --------------------------------------------- |
| id        | Identificador único do círculo                |
| x, y      | Posição do círculo                            |
| radius    | Raio do círculo                               |
| segments  | Número de segmentos do círculo                |
| thickness | Espessura da linha do círculo                 |
| r, g, b   | Valores de cor (RGB)                          |
| a         | Valor Alpha (transparência)                   |
| filled    | Se o círculo deve ser preenchido (true/false) |

***

### SharkAPI Drawing - DrawLine (com espessura)

API que desenha uma linha na tela com espessura personalizada.

```lua DrawLineThickness.lua theme={null}
SharkAPI.Drawing.DrawLine('line_thickness_example', 100, 100, 200, 200, 255, 0, 0, 255, 5.0);
```

| Parâmetro | Descrição                               |
| --------- | --------------------------------------- |
| id        | Identificador único da linha            |
| x1, y1    | Coordenadas da posição inicial da linha |
| x2, y2    | Coordenadas da posição final da linha   |
| r, g, b   | Valores de cor (RGB)                    |
| a         | Valor Alpha (transparência)             |
| thickness | Espessura da linha                      |

***

### SharkAPI Drawing - PushClipRect

API que define uma área de recorte para o desenho.

```lua PushClipRect.lua theme={null}
SharkAPI.Drawing.PushClipRect('clip_rect_example', 100, 100, 200, 200, 10);
```

| Parâmetro | Descrição                              |
| --------- | -------------------------------------- |
| id        | Identificador único da área de recorte |
| x, y      | Posição da área de recorte             |
| w, h      | Largura e altura da área de recorte    |
| order     | Ordem de renderização                  |

***

### SharkAPI Drawing - PopClipRect

API que remove a área de recorte anteriormente definida.

```lua PopClipRect.lua theme={null}
SharkAPI.Drawing.PopClipRect('clip_rect_example', 10);
```

| Parâmetro | Descrição                              |
| --------- | -------------------------------------- |
| id        | Identificador único da área de recorte |
| order     | Ordem de renderização                  |

***

### SharkAPI Drawing - DrawShadowRect

API que desenha um retângulo com sombra.

```lua DrawShadowRect.lua theme={null}
SharkAPI.Drawing.DrawShadowRect('shadow_rect_example', 100, 100, 150, 150, 255, 0, 0, 255, 10.0, 5.0, 10);
```

| Parâmetro       | Descrição                                   |
| --------------- | ------------------------------------------- |
| id              | Identificador único do retângulo com sombra |
| x, y            | Posição do retângulo                        |
| width           | Largura do retângulo                        |
| height          | Altura do retângulo                         |
| r, g, b         | Valores de cor (RGB)                        |
| a               | Valor Alpha (transparência)                 |
| shadowThickness | Espessura da sombra                         |
| rounding        | Valor de arredondamento dos cantos          |
| order           | Ordem de renderização                       |

***

### SharkAPI Drawing - DrawGradientRect

API que desenha um retângulo com gradiente.

```lua DrawGradientRect.lua theme={null}
SharkAPI.Drawing.DrawGradientRect('gradient_rect_example', 100, 100, 150, 150, 255, 0, 0, 255, 0, 0, 255, 255, 5.0, 10);
```

| Parâmetro  | Descrição                                          |
| ---------- | -------------------------------------------------- |
| id         | Identificador único do retângulo com gradiente     |
| x, y       | Posição do retângulo                               |
| width      | Largura do retângulo                               |
| height     | Altura do retângulo                                |
| r1, g1, b1 | Valores de cor (RGB) do início do gradiente        |
| a1         | Valor Alpha (transparência) do início do gradiente |
| r2, g2, b2 | Valores de cor (RGB) do fim do gradiente           |
| a2         | Valor Alpha (transparência) do fim do gradiente    |
| rounding   | Valor de arredondamento dos cantos                 |
| order      | Ordem de renderização                              |

```
```
