Skip to content

InterfaceCreate , Create

GreenBytes95 edited this page Dec 16, 2017 · 14 revisions

Описание:

Создание контекста окна Device и интерфейса (ООП).

Функция:

InterfaceCreate(hWnd.l, device.l = Device::#DEVICE_GDI, begun.l = 1, AlphaFormat.l = 32, fps.l = 30, layred.l = 0, *hDevice.Device::Device = 0)

Параметры

hWnd.l - Handle Window

device.l - Константы типа device

#DEVICE_GDI - Используется для отрисовки библиотека GDIPlus (GDI+)

#DEVICE_D3D9 - Используется для отрисовки библиотека D3D9 (DirectX9)

#DEVICE_NONE - Пустой контекст

begun.l - Отрисовка с момента создания, переменная может иметь значения 0 или 1 [ не используется ]

AlphaFormat.l - Формат изображения в битности (8, 16, 24, 32)

fps.l - Кол-во кадров в секунду для отрисовки, не рекомендуется ставить больше обновления монитора.

layred.l - Использование #WS_EX_LAYERED для отрисовки в окно.

*hDevice.Device - Контекст окна *Device. (Применяется для содания дополнительного Device)

*hDevice.Device - Контекст окна *Device. - [Create]

Пример

XIncludeFile "..\Device.pb"

Global event

Device::Init()

OpenWindow(0, 0, 0, 750, 450, "Example 1", #PB_Window_ScreenCentered | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
WindowBounds(0, 750, 450, #PB_Default, #PB_Default)

Global *hDevice.Device::Device = Device::Create(WindowID(0), Device::#DEVICE_GDI, 1, 32, 32, 0)

Repeat
  If Device::FrameNext(*hDevice)
    Device::Clear(*hDevice, $FF000000)
    Device::RectFill(*hDevice, 0, 0, 200, 200, $FFFFFFFF, Device::#STYLE_CENTER)
    Device::Draw(*hDevice)
  EndIf
  If Device::OnReSize(*hDevice)
    
  EndIf
  If Device::OnRelease(*hDevice)
    
  EndIf
  Repeat
    event = WindowEvent()
    If event = #PB_Event_CloseWindow
      Break 2
    EndIf
  Until event = 0
  Delay(1)
ForEver

Device::Release()

Clone this wiki locally