Что нового

[Элементы GUI] Библиотека для рендера графики. DirectX9 , GDIPlus

Ganibal95

GreenBytes
Сообщения
876
Репутация
240
AutoIt: 3.*
Версия: 1.0

Категория: Графика, GDI+, DirectX 9, Элементы GUI

Описание:
Пользовательская библиотека с набором функции рендера (вывода) на окно граф. примитивов. Используются системы на выбор DirectX 9, GDIPlus.
В библиотеки используются обычные примитивы, вывода квадратов, эллипсов, текста, изображений. Так-же каждый объект можно привязать к граням окна указав соответствующие стили.

Использование:
Для работы функций необходимы библиотеки GDIPlus.dll, d3d9.dll, d3dx9_43.dll

Код/Пример:
Код:
#include "..\AutoIt\UDF.au3"

_Device_Init("..\Bin\Device.dll")

Local $hGUI = GUICreate("Example GDI", 700, 400, -1, -1, 0x00040000)

GUISetState(@SW_SHOW, $hGUI)

Global $hDevice = _Device_Create($hGUI, $DEVICE_GDI, 1, 32, 60, 0, 0)

Global $vector

While 1
   if _Device_FrameNext($hDevice) Then
	  _Device_Clear($hDevice, 0xFF010101)
	  _Device_Pie($hDevice, -150, 0, 100, 100, $vector, -$vector, 0xFFFFFFFF, $STYLE_CENTER)
	  _Device_PieFill($hDevice, 150, 0, 100, 100, -$vector, $vector, 0xFFFFFFFF, $STYLE_CENTER)
	  _Device_Draw($hDevice)
   EndIf
   if _Device_OnReSize($hDevice) Then

   EndiF
   if _Device_OnRelease($hDevice) Then

   EndiF
   if _Device_OnMouse($hDevice) Then

   EndIf
   $vector = $vector + 1
   if $vector > 360 Then
	  $vector = 0
   EndIf
   Switch GUIGetMsg()
	  Case -3
		 ExitLoop
   EndSwitch
WEnd

_Device_Close($hDevice)

GUIDelete($hGUI)

_Device_Release()

Файл: GitHub

Снимок:


История версий:
1.0.0.0

P.S:
Если где-то ошибся в AutoIt коде, хотелось бы исправить. Более года не писал на AutoIt ничего, решил вот поделится с форумом своей библиотекой. Мне не однократно помогали на этом форуме, хотелось бы чтоб эта библиотека стала полезна другим пользователям.
Хотелось бы сделать поддержку DirectX11, DirectX10, OpenGL. По этому не отказался бы от ссылок описанием работы интерфейсов, примеров. А так-же литературы.

Источник: autoit-script.ru , purebasic.info
Автор(ы): GreenBytes (Ganibal95)
 

joiner

Модератор
Локальный модератор
Сообщения
3,401
Репутация
596
Код:
warning: $SMOOTHING_NONE: possibly used before declaration.
Func _Device_SetSmoothing($hDevice, $Smoothing = $SMOOTHING_NONE)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 error: $SMOOTHING_NONE: undeclared global variable.
Func _Device_SetSmoothing($hDevice, $Smoothing = $SMOOTHING_NONE)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
я так понял, что $SMOOTHING_NONE равно нулю?
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
876
Репутация
240
joiner сказал(а):
Код:
warning: $SMOOTHING_NONE: possibly used before declaration.
Func _Device_SetSmoothing($hDevice, $Smoothing = $SMOOTHING_NONE)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 error: $SMOOTHING_NONE: undeclared global variable.
Func _Device_SetSmoothing($hDevice, $Smoothing = $SMOOTHING_NONE)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
я так понял, что $SMOOTHING_NONE равно нулю?
Вот все константы, видимо забыл либо не помню AutoIt уже :(
Код:
;-----------------------------------------------------------
  ;-       Device Constants
  ;{----------------------------------------------------------
  #DEVICE_NONE = $00
  #DEVICE_GDI = $01
  #DEVICE_D3D9 = $02

  #STYLE_NONE = 0
  #STYLE_FULL = 1
  #STYLE_WIDTH_MAX = 2
  #STYLE_HEIGHT_MAX = 4
  #STYLE_CENTER = 8
  #STYLE_RIGHT = 16
  #STYLE_BOTTOM = 1024
  
  #SMOOTHING_NONE = $00000000
  #SMOOTHING_BLEND = $00000001


Добавлено:
Сообщение автоматически объединено:

Исправил константы, видимо я их не вписал.
Код:
Global const $SMOOTHING_NONE = 0x00000000
Global const $SMOOTHING_BLEND = 0x00000001


Добавил в шапку новый , более наглядный пример на GDI, при желании можно переключить на DirectX9 изменив $DEVICE_GDI на $DEVICE_D3D9.

Так-же было замечена очень малая скорость AutoIt. По сравнению с компилированными языками.
 
Верх