# render.ClearStencilBufferRectangle

- **Ortam:** İstemci, Menü
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/render.ClearStencilBufferRectangle
- **Çeviri tarihi:** 2025-09-08

```lua
render.ClearStencilBufferRectangle( number startX, number startY, number endX, number endY, number stencilBufferValue )
```

## Açıklama

Belirli bir dikdörtgen içindeki her piksel için Şablon Tamponu (Stencil Buffer) değerini verilen bir değere ayarlar.

Bu, [render.SetStencilWriteMask](https://gmod.tr/wiki/render.SetStencilWriteMask)'tan **etkilenmez**.

Şablon (Stencil) sistemi hakkında kullanım örnekleri de dahil olmak üzere daha detaylı bilgi için [Şablonlar Render Referansı](https://gmod.tr/wiki/render_stencils) sayfasına bakınız.

## Argümanlar

1. [number](https://gmod.tr/wiki/number) **startX**: Temizlenecek dikdörtgenin sol üst köşesinin X koordinatı.
2. [number](https://gmod.tr/wiki/number) **startY**: Temizlenecek dikdörtgenin sol üst köşesinin Y koordinatı.
3. [number](https://gmod.tr/wiki/number) **endX**: Temizlenecek dikdörtgenin sağ alt köşesinin X koordinatı. **Not:** Diğer bazı dikdörtgen tabanlı fonksiyonların aksine, bu dikdörtgenin genişliği **değildir**.
4. [number](https://gmod.tr/wiki/number) **endY**: Temizlenecek dikdörtgenin sağ alt köşesinin Y koordinatı. **Not:** Diğer bazı dikdörtgen tabanlı fonksiyonların aksine, bu dikdörtgenin yüksekliği **değildir**.
5. [number](https://gmod.tr/wiki/number) **stencilBufferValue**: Dikdörtgen içindeki tüm piksellerin ayarlanacağı Şablon Tamponu (Stencil Buffer) değeri.

### Örnek: Yatay Silme Efekti

Bu örnek, çizilen iki öğe arasında bir "silme" (wipe) geçiş efekti gerçekleştirmek için bu fonksiyonun nasıl kullanılacağını gösterir.

```lua
local COLOR_BLUE = Color( 65, 98, 214 )
local COLOR_RED = Color( 214, 44, 100 )

local colorMaterial = Material( "color" )

hook.Add( "PostDrawTranslucentRenderables", "StencilExampleClearStencilBufferRectangle", function()

    -- Şablon (Stencil) sisteminin ayarlarını sıfırla
    render.SetStencilTestMask( 255 )
    render.SetStencilWriteMask( 255 )
    render.SetStencilFailOperation( STENCILOPERATION_KEEP )
    render.SetStencilPassOperation( STENCILOPERATION_KEEP )
    render.SetStencilZFailOperation( STENCILOPERATION_KEEP )

    -- Tüm Şablon Tamponu (Stencil Buffer) değerlerini 0'a sıfırla
    render.ClearStencil()

    -- Yalnızca Şablon Tamponu (Stencil Buffer) değeri Şablon Referans (Stencil Reference) değerine eşit olan pikselleri geçir
    render.SetStencilCompareFunction( STENCILCOMPARISONFUNCTION_EQUAL )

    -- Bu X koordinatının solundaki ve sağındaki her şeyi maskeleyeceğiz
    -- Ekranın ortasından başlar ve math.sin sayesinde ileri geri hareket eder
    local verticalSplitX = ScrW()/2 + math.sin( CurTime() ) * ScrW()/8

    -- Dikey ayrımın sol tarafındaki tüm pikseller için Şablon Tamponu (Stencil Buffer) değerini 1'e ayarla
    render.ClearStencilBufferRectangle( 0, 0, verticalSplitX, ScrH(), 1 )

    -- Dikey ayrımın sağ tarafındaki tüm pikseller için Şablon Tamponu (Stencil Buffer) değerini 2'ye ayarla
    render.ClearStencilBufferRectangle( verticalSplitX, 0, ScrW(), ScrH(), 2 )

    cam.Start2D()
    render.SetStencilEnable( true )

    -- Yalnızca Şablon Tamponu (Stencil Buffer) değeri 1'e eşit olan piksellerde render yap (Sol taraf)
    render.SetStencilReferenceValue( 1 )

    -- Ekranın ortasına, yalnızca ekranın sol yarısına maskelenecek bir dikdörtgen çiz
    surface.SetDrawColor( COLOR_BLUE )
    surface.SetMaterial( colorMaterial )
    surface.DrawTexturedRectRotated( ScrW()/2, ScrH()/2, ScrW()/8, ScrW()/8, math.sin( CurTime() ) * 360 )

    -- Yalnızca Şablon Tamponu (Stencil Buffer) değeri 2'ye eşit olan piksellerde render yap (Sağ taraf)
    render.SetStencilReferenceValue( 2 )

    -- Ekranın ortasına, yalnızca ekranın sağ yarısına maskelenecek bir dikdörtgen çiz
    surface.SetDrawColor( COLOR_RED )
    surface.DrawTexturedRectRotated( ScrW()/2, ScrH()/2, ScrW()/8, ScrW()/8, math.cos( CurTime() ) * 360 )

    render.SetStencilEnable( false )
    cam.End2D()
end )
```

**Çıktı:** Aşağıdaki resimde, ekranın merkezinde hareket eden dikey ayrımın, her ikisi de aynı konumda çizilen iki dikdörtgeni nasıl ortaya çıkardığını ve gizlediğini görebilirsiniz. ![](https://gmod.tr/api/uploads/wiki/fb71565a9c073cc9df68.gif)

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/render.ClearStencilBufferRectangle
