|
20 | 20 | SciterDataReady = SCFN(BOOL, HWINDOW, LPCWSTR, LPCBYTE, UINT)
|
21 | 21 | SciterDataReadyAsync = SCFN(BOOL, HWINDOW, LPCWSTR, LPCBYTE, UINT, LPVOID)
|
22 | 22 |
|
23 |
| -if SCITER_WIN: |
24 |
| - SciterProc = SCFN(LRESULT, HWINDOW, UINT, WPARAM, LPARAM) |
25 |
| - SciterProcND = SCFN(LRESULT, HWINDOW, UINT, WPARAM, LPARAM, POINTER(BOOL)) |
| 23 | +SciterProc = SCFN(LRESULT, HWINDOW, UINT, WPARAM, LPARAM) |
| 24 | +SciterProcND = SCFN(LRESULT, HWINDOW, UINT, WPARAM, LPARAM, POINTER(BOOL)) |
26 | 25 |
|
27 | 26 | SciterLoadFile = SCFN(BOOL, HWINDOW, LPCWSTR)
|
28 | 27 | SciterLoadHtml = SCFN(BOOL, HWINDOW, LPCBYTE, UINT, LPCWSTR)
|
|
38 | 37 | SciterEval = SCFN(BOOL, HWINDOW, LPCWSTR, UINT, POINTER(SCITER_VALUE))
|
39 | 38 | SciterUpdateWindow = SCFN(VOID, HWINDOW)
|
40 | 39 |
|
41 |
| -if SCITER_WIN: |
42 |
| - SciterTranslateMessage = SCFN(BOOL, POINTER(MSG)) |
| 40 | +SciterTranslateMessage = SCFN(BOOL, POINTER(MSG)) |
43 | 41 |
|
44 | 42 | SciterSetOption = SCFN(BOOL, HWINDOW, UINT, UINT_PTR)
|
45 | 43 | SciterGetPPI = SCFN(VOID, HWINDOW, POINTER(UINT), POINTER(UINT))
|
46 | 44 | SciterGetViewExpando = SCFN(BOOL, HWINDOW, POINTER(SCITER_VALUE))
|
47 | 45 |
|
48 |
| -if SCITER_WIN: |
49 |
| - SciterRenderD2D = SCFN(BOOL, HWINDOW, POINTER(ID2D1RenderTarget)) |
50 |
| - SciterD2DFactory = SCFN(BOOL, POINTER(ID2D1Factory)) |
51 |
| - SciterDWFactory = SCFN(BOOL, POINTER(IDWriteFactory)) |
| 46 | +SciterRenderD2D = SCFN(BOOL, HWINDOW, POINTER(ID2D1RenderTarget)) |
| 47 | +SciterD2DFactory = SCFN(BOOL, POINTER(ID2D1Factory)) |
| 48 | +SciterDWFactory = SCFN(BOOL, POINTER(IDWriteFactory)) |
52 | 49 |
|
53 | 50 | SciterGraphicsCaps = SCFN(BOOL, LPUINT)
|
54 | 51 | SciterSetHomeURL = SCFN(BOOL, HWINDOW, LPCWSTR)
|
55 | 52 |
|
56 |
| -if SCITER_OSX: |
57 |
| - SciterCreateNSView = SCFN(HWINDOW, LPRECT) |
| 53 | +SciterCreateNSView = SCFN(HWINDOW, LPRECT) |
58 | 54 |
|
59 |
| -if SCITER_LNX: |
60 |
| - SciterCreateWidget = SCFN(HWINDOW, LPRECT) |
| 55 | +SciterCreateWidget = SCFN(HWINDOW, LPRECT) |
61 | 56 |
|
62 | 57 |
|
63 | 58 | SciterCreateWindow = SCFN(HWINDOW, UINT, LPRECT, SciterWindowDelegate, LPVOID, HWINDOW)
|
|
221 | 216 | SciterProcX = SCFN(BOOL, HWINDOW, POINTER(SCITER_X_MSG))
|
222 | 217 |
|
223 | 218 |
|
224 |
| -if SCITER_WIN: |
225 |
| - # DirectX API |
226 |
| - SciterCreateOnDirectXWindow = SCFN(BOOL, HWINDOW, POINTER(IDXGISwapChain)) |
227 |
| - SciterRenderOnDirectXWindow = SCFN(BOOL, HWINDOW, HELEMENT, BOOL) |
228 |
| - SciterRenderOnDirectXTexture = SCFN(BOOL, HWINDOW, HELEMENT, POINTER(IDXGISurface)) |
| 219 | +# DirectX API |
| 220 | +SciterCreateOnDirectXWindow = SCFN(BOOL, HWINDOW, POINTER(IDXGISwapChain)) |
| 221 | +SciterRenderOnDirectXWindow = SCFN(BOOL, HWINDOW, HELEMENT, BOOL) |
| 222 | +SciterRenderOnDirectXTexture = SCFN(BOOL, HWINDOW, HELEMENT, POINTER(IDXGISurface)) |
229 | 223 |
|
230 | 224 |
|
231 | 225 | class ISciterAPI(Structure):
|
@@ -444,10 +438,37 @@ class ISciterAPI(Structure):
|
444 | 438 | # since 4.0.0.0
|
445 | 439 | "SciterProcX",
|
446 | 440 |
|
| 441 | + # since 4.4.2.14 |
| 442 | + "SciterAtomValue", |
| 443 | + "SciterAtomNameCB", |
| 444 | + |
| 445 | + # since 4.4.2.16 |
| 446 | + "SciterSetGlobalAsset", |
| 447 | + |
| 448 | + # since 4.4.4.7 |
| 449 | + "SciterGetElementAsset", |
| 450 | + |
| 451 | + # since 4.4.4.6 (yet disabled) |
| 452 | + "SciterSetVariable", |
| 453 | + "SciterGetVariable", |
| 454 | + |
| 455 | + # since 4.4.5.4 |
| 456 | + "SciterElementUnwrap", |
| 457 | + "SciterElementWrap", |
| 458 | + "SciterNodeUnwrap", |
| 459 | + "SciterNodeWrap", |
| 460 | + |
447 | 461 | ]
|
448 | 462 | # END OF ISciterAPI.
|
449 | 463 |
|
450 | 464 | def _make_fields(names):
|
| 465 | + # |
| 466 | + # Patch the ISciterAPI structure. |
| 467 | + # |
| 468 | + # This works by conditionally defining the function types first in the global scope, |
| 469 | + # then defining *all* the possible API names in a single array, |
| 470 | + # and filtering the array eliminating those that don't exist in the global context. |
| 471 | + # |
451 | 472 | context = globals()
|
452 | 473 | fields = [(name, context[name]) for name in names if name in context]
|
453 | 474 | fields.insert(0, ("version", UINT))
|
|
0 commit comments