1 /*
2  *
3  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
4  *
5  */
6 
7 #include <windows.h>
8 
9 #include "unicode/utypes.h"
10 #include "loengine.h"
11 #include "rsurface.h"
12 #include "gsupport.h"
13 
14 #include "gdiglue.h"
15 
16 #include "LETypes.h"
17 #include "LEFontInstance.h"
18 #include "GDIGUISupport.h"
19 #include "GDIFontMap.h"
20 #include "ScriptCompositeFontInstance.h"
21 
22 
23 U_CDECL_BEGIN
24 
gs_gdiGuiSupportOpen()25 gs_guiSupport *gs_gdiGuiSupportOpen()
26 {
27     return (gs_guiSupport *) new GDIGUISupport();
28 }
29 
gs_gdiGuiSupportClose(gs_guiSupport * guiSupport)30 void gs_gdiGuiSupportClose(gs_guiSupport *guiSupport)
31 {
32     GDIGUISupport *gs = (GDIGUISupport *) guiSupport;
33 
34     delete gs;
35 }
36 
rs_gdiRenderingSurfaceOpen(HDC hdc)37 rs_surface *rs_gdiRenderingSurfaceOpen(HDC hdc)
38 {
39     return (rs_surface *) new GDISurface(hdc);
40 }
41 
rs_gdiRenderingSurfaceSetHDC(rs_surface * surface,HDC hdc)42 void rs_gdiRenderingSurfaceSetHDC(rs_surface *surface, HDC hdc)
43 {
44     GDISurface *rs = (GDISurface *) surface;
45 
46     rs->setHDC(hdc);
47 }
48 
rs_gdiRenderingSurfaceClose(rs_surface * surface)49 void rs_gdiRenderingSurfaceClose(rs_surface *surface)
50 {
51     GDISurface *rs = (GDISurface *) surface;
52 
53     delete rs;
54 }
55 
fm_gdiFontMapOpen(rs_surface * surface,const char * fileName,le_int16 pointSize,gs_guiSupport * guiSupport,LEErrorCode * status)56 fm_fontMap *fm_gdiFontMapOpen(rs_surface *surface, const char *fileName, le_int16 pointSize, gs_guiSupport *guiSupport, LEErrorCode *status)
57 {
58     return (fm_fontMap *) new GDIFontMap((GDISurface *) surface, fileName, pointSize, (GDIGUISupport *) guiSupport, *status);
59 }
60 
fm_fontMapClose(fm_fontMap * fontMap)61 void fm_fontMapClose(fm_fontMap *fontMap)
62 {
63     GDIFontMap *fm = (GDIFontMap *) fontMap;
64 
65     delete fm;
66 }
67 
le_scriptCompositeFontOpen(fm_fontMap * fontMap)68 le_font *le_scriptCompositeFontOpen(fm_fontMap *fontMap)
69 {
70     return (le_font *) new ScriptCompositeFontInstance((FontMap *) fontMap);
71 }
72 
le_fontClose(le_font * font)73 void le_fontClose(le_font *font)
74 {
75     LEFontInstance *fi = (LEFontInstance *) font;
76 
77     delete fi;
78 }
79 
80 U_CDECL_END
81