Skip to content

Commit 3b0bf23

Browse files
committed
fix: Sciter API unification since Sciter 4.4.7.0.
1 parent 8c488c4 commit 3b0bf23

File tree

1 file changed

+39
-18
lines changed

1 file changed

+39
-18
lines changed

sciter/capi/scapi.py

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@
2020
SciterDataReady = SCFN(BOOL, HWINDOW, LPCWSTR, LPCBYTE, UINT)
2121
SciterDataReadyAsync = SCFN(BOOL, HWINDOW, LPCWSTR, LPCBYTE, UINT, LPVOID)
2222

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))
2625

2726
SciterLoadFile = SCFN(BOOL, HWINDOW, LPCWSTR)
2827
SciterLoadHtml = SCFN(BOOL, HWINDOW, LPCBYTE, UINT, LPCWSTR)
@@ -38,26 +37,22 @@
3837
SciterEval = SCFN(BOOL, HWINDOW, LPCWSTR, UINT, POINTER(SCITER_VALUE))
3938
SciterUpdateWindow = SCFN(VOID, HWINDOW)
4039

41-
if SCITER_WIN:
42-
SciterTranslateMessage = SCFN(BOOL, POINTER(MSG))
40+
SciterTranslateMessage = SCFN(BOOL, POINTER(MSG))
4341

4442
SciterSetOption = SCFN(BOOL, HWINDOW, UINT, UINT_PTR)
4543
SciterGetPPI = SCFN(VOID, HWINDOW, POINTER(UINT), POINTER(UINT))
4644
SciterGetViewExpando = SCFN(BOOL, HWINDOW, POINTER(SCITER_VALUE))
4745

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))
5249

5350
SciterGraphicsCaps = SCFN(BOOL, LPUINT)
5451
SciterSetHomeURL = SCFN(BOOL, HWINDOW, LPCWSTR)
5552

56-
if SCITER_OSX:
57-
SciterCreateNSView = SCFN(HWINDOW, LPRECT)
53+
SciterCreateNSView = SCFN(HWINDOW, LPRECT)
5854

59-
if SCITER_LNX:
60-
SciterCreateWidget = SCFN(HWINDOW, LPRECT)
55+
SciterCreateWidget = SCFN(HWINDOW, LPRECT)
6156

6257

6358
SciterCreateWindow = SCFN(HWINDOW, UINT, LPRECT, SciterWindowDelegate, LPVOID, HWINDOW)
@@ -221,11 +216,10 @@
221216
SciterProcX = SCFN(BOOL, HWINDOW, POINTER(SCITER_X_MSG))
222217

223218

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))
229223

230224

231225
class ISciterAPI(Structure):
@@ -444,10 +438,37 @@ class ISciterAPI(Structure):
444438
# since 4.0.0.0
445439
"SciterProcX",
446440

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+
447461
]
448462
# END OF ISciterAPI.
449463

450464
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+
#
451472
context = globals()
452473
fields = [(name, context[name]) for name in names if name in context]
453474
fields.insert(0, ("version", UINT))

0 commit comments

Comments
 (0)