From 0c37990f53ae7c8f5d851dbe2b597cfadd2bc7ae Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sat, 29 Aug 2009 17:35:11 -0500 Subject: [PATCH] windows.offscreen structs --- basis/windows/offscreen/offscreen.factor | 33 +++++++++--------- basis/windows/types/types.factor | 44 ++++++++++++------------ 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/basis/windows/offscreen/offscreen.factor b/basis/windows/offscreen/offscreen.factor index fea7240bf6..63cfd92ba1 100755 --- a/basis/windows/offscreen/offscreen.factor +++ b/basis/windows/offscreen/offscreen.factor @@ -2,25 +2,26 @@ ! See http://factorcode.org/license.txt for BSD license. USING: alien.c-types kernel combinators sequences math windows.gdi32 windows.types images destructors -accessors fry locals ; +accessors fry locals classes.struct ; IN: windows.offscreen : (bitmap-info) ( dim -- BITMAPINFO ) - "BITMAPINFO" [ - BITMAPINFO-bmiHeader { - [ nip "BITMAPINFOHEADER" heap-size swap set-BITMAPINFOHEADER-biSize ] - [ [ first ] dip set-BITMAPINFOHEADER-biWidth ] - [ [ second ] dip set-BITMAPINFOHEADER-biHeight ] - [ nip 1 swap set-BITMAPINFOHEADER-biPlanes ] - [ nip 32 swap set-BITMAPINFOHEADER-biBitCount ] - [ nip BI_RGB swap set-BITMAPINFOHEADER-biCompression ] - [ [ first2 * 4 * ] dip set-BITMAPINFOHEADER-biSizeImage ] - [ nip 72 swap set-BITMAPINFOHEADER-biXPelsPerMeter ] - [ nip 72 swap set-BITMAPINFOHEADER-biYPelsPerMeter ] - [ nip 0 swap set-BITMAPINFOHEADER-biClrUsed ] - [ nip 0 swap set-BITMAPINFOHEADER-biClrImportant ] - } 2cleave - ] keep ; + [ + BITMAPINFO + dup bmiHeader>> + BITMAPINFOHEADER heap-size >>biSize + ] dip + [ first >>biWidth ] + [ second >>biHeight ] + [ first2 * 4 * >>biSizeImage ] tri + 1 >>biPlanes + 32 >>biBitCount + BI_RGB >>biCompression + 72 >>biXPelsPerMeter + 72 >>biYPelsPerMeter + 0 >>biClrUsed + 0 >>biClrImportant + drop ; : make-bitmap ( dim dc -- hBitmap bits ) [ nip ] diff --git a/basis/windows/types/types.factor b/basis/windows/types/types.factor index fb3ba7f0f5..8a5c963de0 100755 --- a/basis/windows/types/types.factor +++ b/basis/windows/types/types.factor @@ -257,28 +257,28 @@ C-STRUCT: PAINTSTRUCT { "BYTE[32]" "rgbReserved" } ; -C-STRUCT: BITMAPINFOHEADER - { "DWORD" "biSize" } - { "LONG" "biWidth" } - { "LONG" "biHeight" } - { "WORD" "biPlanes" } - { "WORD" "biBitCount" } - { "DWORD" "biCompression" } - { "DWORD" "biSizeImage" } - { "LONG" "biXPelsPerMeter" } - { "LONG" "biYPelsPerMeter" } - { "DWORD" "biClrUsed" } - { "DWORD" "biClrImportant" } ; - -C-STRUCT: RGBQUAD - { "BYTE" "rgbBlue" } - { "BYTE" "rgbGreen" } - { "BYTE" "rgbRed" } - { "BYTE" "rgbReserved" } ; - -C-STRUCT: BITMAPINFO - { "BITMAPINFOHEADER" "bmiHeader" } - { "RGBQUAD[1]" "bmiColors" } ; +STRUCT: BITMAPINFOHEADER + { biSize DWORD } + { biWidth LONG } + { biHeight LONG } + { biPlanes WORD } + { biBitCount WORD } + { biCompression DWORD } + { biSizeImage DWORD } + { biXPelsPerMeter LONG } + { biYPelsPerMeter LONG } + { biClrUsed DWORD } + { biClrImportant DWORD } ; + +STRUCT: RGBQUAD + { rgbBlue BYTE } + { rgbGreen BYTE } + { rgbRed BYTE } + { rgbReserved BYTE } ; + +STRUCT: BITMAPINFO + { bmiHeader BITMAPINFOHEADER } + { bimColors RGBQUAD[1] } ; TYPEDEF: void* LPPAINTSTRUCT TYPEDEF: void* PAINTSTRUCT -- 2.34.1