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
Все