PureBasic

DrawingBuffer()

Синтаксис

*Buffer = DrawingBuffer()

Описание


Возвращает адрес буфера рисования в памяти, который можно использовать для прямого управления пикселями. Буфер рисования - это участок памяти или видеопамяти выделенный для устройства вывода графики (поверхности для рисования), например для SpriteOutput, ImageOutput и тд. В нём содержится само изображение рисунка и дополнительные данные.

Параметры

Ничего.

Возвращаемое значение

Возвращает указатель на пиксельные данные, если возможен прямой доступ к пиксельным данным, иначе нуль.

Комментарии

Если после последней манипуляции пикселями использовались другие команды библиотеки, то эту функцию нужно вызывать снова. После вызова функции StopDrawing(), буфер становится не действительным и более не может использоваться.

Эта функция только для опытных программистов. Для получения дополнительной информации о буфере, используйте следующие функции: DrawingBufferPixelFormat() и DrawingBufferPitch().

Возвращенный адрес может указывать непосредственно на видеопамять, если поверхность вывода графики - ScreenOutput() или SpriteOutput(), что позволяет очень быстрое управление пикселями. Если устройство вывода - ImageOutput(), эта команда предоставляет прямой доступ к пикселям изображения.

Пример

Пример того, как буфер рисования можно использовать для создания отличного визуального эффекта, посмотрите здесь:

Пример

DirectScreenDrawing.pb

Пример (Фран)

If OpenWindow(0, 0, 0, 200, 200, "Buffer Image", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If CreateImage(0, 200, 200, 32) And StartDrawing(ImageOutput(0))
        DrawText(60, 80, "PUREBASIC", RGB(255, 255, 0))
        Debug "Адрес памяти : " + Str(DrawingBuffer())
        Debug "Реальная длина одной линии  : " + Str(DrawingBufferPitch())
        Debug "Пиксельный формат : " + Str(DrawingBufferPixelFormat())
        StopDrawing()
        ImageGadget(0, 0, 0, 200, 200, ImageID(0))
    EndIf

    Repeat
        Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
EndIf

См. также

DrawingBufferPixelFormat(), DrawingBufferPitch()

Поддерживаемые OS

Все

<- DrawText() - Оглавление 2D Drawing - DrawingBufferPitch()->