This is what the rendering API currently looks like and will be directly available to you:
Code:
*hwndOutput.D2D_OUTPUT = AllocateStructure(D2D_OUTPUT)
*hwndOutput\CompositionSurface = *dwm\CompositionSurface
*hwndOutput\DCompDevice = *dwm\DCompDevice
BeginDraw(*hwndOutput)
DrawClear(0, 0)
GetClientRect_(hwnd, trc.RECT)
rc.RECT_F
rc\left = trc\left
rc\top = trc\top
rc\right = trc\right
rc\bottom = trc\bottom
BeginLayer(rc, 1, 0, *tborder)
;DrawImg(timg1, 0, 0, -1, -1, 1)
BrushSetOpacity(backBrush, 0.8)
DrawFillBox(0, 0, rc\right, rc\bottom, backBrush)
;DrawRect(rc, RGB(0, 0, 25), 0.1)
; BeginDraw(ImgOutput(testimg))
; DrawBox(0, 0, 50, 50, RGB(255, 0, 0), 0.5)
; BeginDraw(ImgOutput(timg1))
; DrawBox(400, 400, 100, 100, RGB(0, 255, 0), 0.5)
; EndDraw()
; EndDraw()
DrawImg(testimg, 100, 100, 200, 200, 1)
If *dwm = dwm
;Debug deviceContext\Direct2DContext
;DrawBox(0, 0, 100, 100, RGB(255, 0, 0), 1)
Else
DrawBox(0, 0, 100, 100, RGB(0, 255, 0), 1)
EndIf
; LockMutex(mutex)
; ForEach object()
; ;ImgDrawEx(object()\img, 20, 20, 20, 20, object()\x, object()\y, 200, 200, object()\alpha)
; DrawImg(object()\img, object()\x, object()\y, -1, -1, object()\alpha)
; ; trc.RECT_F
; ; trc\left = object()\x+10
; ; trc\top = object()\y+10
; ; trc\right = object()\x+80
; ; trc\bottom = object()\y+80
;
; ;If object()\x >= rc\left And object()\x <= rc\right And object()\y >= rc\top And object()\y <= rc\bottom
; ;ImgBeginLayer(trc, 0.8, 0, *tborder)
; ;ImgRect(trc, RGB(0, 200, 0), 1)
; ;ImgEndLayer()
; ;EndIf
;
; Next
; UnlockMutex(mutex)
;DrawBorder(*tborder, 120, 100, p\x, p\y, 1)
w = 300
h = 300
rc.RECT_F
rc\left = p\x-(w/2)
rc\top = p\y-(h/2)
rc\right = rc\left + w
rc\bottom = rc\top + h
; BeginLayer(rc, 1, 0, *tborder)
; *img.imgs = timg1
; _D2D_Blur(*hwndOutput\D2DDeviceContext, *img\d2d_bitmap, rc)
; DrawRect(rc, RGB(255, 255, 255), 0.1)
;
; rc\left + 20
; rc\top + 20
; rc\bottom - 20
; rc\right - 20
; BeginLayer(rc, 1, 0, *tborder)
; DrawRect(rc, RGB(0, 255, 0), 0.3)
; EndLayer()
;
; EndLayer()
GetClientRect_(hwnd, trc.RECT)
If *dwm = dwm
DrawTxt("This is a test Window 1", trc\right-trc\left, trc\bottom-trc\top)
Else
DrawTxt("This is a test Window 2", trc\right-trc\left, trc\bottom-trc\top)
EndIf
EndLayer()
EndDraw()
As you can see at the top there's a hard coded hwndOutput Structure that will be wrapped up into HwndOuput() command once plugged into the PanelEx code. It's a bit more refined now anyway and more closely resemlbles PB's ImageOutput()/WIndowOuput() style commands (not final or set in stone though I might change some of the command names). I'm pretty excited anyway about the potential and what cool stuff you guys are gunna create with it (myself included!)
