1*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/include/graphite/GrCommon.h Thu Jan 22 00:36:40 2009 2*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/include/graphite/GrCommon.h Sat Aug 22 19:36:32 2009 3*b1cdbd2cSJim Jagielski@@ -18,6 +18,8 @@ 4*b1cdbd2cSJim Jagielski #ifndef GRCOMMON_INCLUDED 5*b1cdbd2cSJim Jagielski #define GRCOMMON_INCLUDED 6*b1cdbd2cSJim Jagielski 7*b1cdbd2cSJim Jagielski+#define _SECURE_SCL 0 // to allow GlyphSetIterator to work, which points off the end of a vector 8*b1cdbd2cSJim Jagielski+#define _HAS_ITERATOR_DEBUGGING 0 9*b1cdbd2cSJim Jagielski 10*b1cdbd2cSJim Jagielski // Standard Headers. 11*b1cdbd2cSJim Jagielski 12*b1cdbd2cSJim Jagielski@@ -33,6 +35,7 @@ 13*b1cdbd2cSJim Jagielski #include <vector> 14*b1cdbd2cSJim Jagielski #include <algorithm> 15*b1cdbd2cSJim Jagielski #include <string> 16*b1cdbd2cSJim Jagielski+///#include <stdexcept> -- possibly needed for std::string Xran and Xlen functions?? 17*b1cdbd2cSJim Jagielski 18*b1cdbd2cSJim Jagielski // Uncomment this to allow multiple versions of gr to coexist 19*b1cdbd2cSJim Jagielski // in the same program e.g. pangographite with gtk uses namespace gr 20*b1cdbd2cSJim Jagielski@@ -41,7 +44,7 @@ 21*b1cdbd2cSJim Jagielski // Provided the client includes GrClient.h first this #define is 22*b1cdbd2cSJim Jagielski // picked up by all files. 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski-//#define gr gr2 25*b1cdbd2cSJim Jagielski+#define gr gr3ooo 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski // Project headers 28*b1cdbd2cSJim Jagielski #include "GrPlatform.h" 29*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/include/graphite/GrMstypes.h Thu Jan 22 00:36:40 2009 30*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/include/graphite/GrMstypes.h Sat Aug 22 19:36:32 2009 31*b1cdbd2cSJim Jagielski@@ -24,11 +24,11 @@ 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski typedef signed long HRESULT; 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski-inline const long InterlockedIncrement(long *const intr_lck) { 36*b1cdbd2cSJim Jagielski+inline long InterlockedIncrement(long *const intr_lck) { 37*b1cdbd2cSJim Jagielski return ++*intr_lck; 38*b1cdbd2cSJim Jagielski } 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski-inline const long InterlockedDecrement(long *const intr_lck) { 41*b1cdbd2cSJim Jagielski+inline long InterlockedDecrement(long *const intr_lck) { 42*b1cdbd2cSJim Jagielski return --*intr_lck; 43*b1cdbd2cSJim Jagielski } 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/makefile.vc7 Thu Aug 21 16:24:32 2008 46*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/makefile.vc7 Sat Aug 22 19:36:32 2009 47*b1cdbd2cSJim Jagielski@@ -48,11 +48,7 @@ 48*b1cdbd2cSJim Jagielski CPP_DEBUG=/D "TRACING" $(CPP_DEBUG) 49*b1cdbd2cSJim Jagielski !ENDIF 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski-!IF "$(OS)" == "Windows_NT" 52*b1cdbd2cSJim Jagielski NULL= 53*b1cdbd2cSJim Jagielski-!ELSE 54*b1cdbd2cSJim Jagielski-NULL=nul 55*b1cdbd2cSJim Jagielski-!ENDIF 56*b1cdbd2cSJim Jagielski 57*b1cdbd2cSJim Jagielski clean : 58*b1cdbd2cSJim Jagielski @- rd /s/q .\release_temp 59*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/makefile.vc8 Sat Aug 22 21:58:25 2009 60*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/makefile.vc8 Sat Aug 22 21:57:42 2009 61*b1cdbd2cSJim Jagielski@@ -2,11 +2,16 @@ 62*b1cdbd2cSJim Jagielski TARGET=graphite 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski CPP=cl.exe 65*b1cdbd2cSJim Jagielski-CPPFLAGS=/Zc:wchar_t- /nologo /W4 /GR /EHsc /I "./src/font" /I "./src/painter" /I "./src/segment" /I "./src/textsource" /I "./src/generic" /I "./include/graphite" /I "../wrappers/win32" /D "GR_NAMESPACE" /D "WIN32" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /D "TRACING" /Fp"$(INTDIR)\graphite.pch" /Fd"$(INTDIR)\\" /FD /c 66*b1cdbd2cSJim Jagielski+### HDU: disabled building with the normal compile flags 67*b1cdbd2cSJim Jagielski+###CPPFLAGS= /Zc:wchar_t- /nologo /W4 /GR /EHsc /I "./src/font" /I "./src/painter" /I "./src/segment" /I "./src/textsource" /I "./src/generic" /I "./include/graphite" /I "../wrappers/win32" /D "GR_NAMESPACE" /D "WIN32" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /D "TRACING" /Fp"$(INTDIR)\graphite.pch" /Fd"$(INTDIR)\\" /FD /c 68*b1cdbd2cSJim Jagielski+### HDU: because for full binary compatibility with the rest of OOo all compile flags must match exactly 69*b1cdbd2cSJim Jagielski+### which is especially true for template-heavy C++ code with non-default config (e.g. _STLP_DEBUG enabled) 70*b1cdbd2cSJim Jagielski+CPPFLAGS= $(CFLAGS4MSC) /nologo /W4 /I "./src/font" /I "./src/painter" /I "./src/segment" /I "./src/textsource" /I "./src/generic" /I "./include/graphite" /I "../wrappers/win32" /D "GR_NAMESPACE" /D "WIN32" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /D "TRACING" /Fp"$(INTDIR)\graphite.pch" /FD /c 71*b1cdbd2cSJim Jagielski+ 72*b1cdbd2cSJim Jagielski # /Wp62 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski LINK=link.exe 75*b1cdbd2cSJim Jagielski-LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /dll /pdb:"$(OUTDIR)\\graphite.pdb" /machine:I386 /out:"$(OUTDIR)\\$(TARGET).dll" /implib:"$(OUTDIR)\\$(TARGET).lib" 76*b1cdbd2cSJim Jagielski+LINK_FLAGS=$(ADDLIBS) kernel32.lib user32.lib gdi32.lib winspool.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /dll /pdb:"$(OUTDIR)\\graphite.pdb" /machine:I386 /out:"$(OUTDIR)\\$(TARGET).dll" /implib:"$(OUTDIR)\\$(TARGET).lib" 77*b1cdbd2cSJim Jagielski 78*b1cdbd2cSJim Jagielski BSC32=bscmake.exe 79*b1cdbd2cSJim Jagielski BSC32_FLAGS=/nologo /o"$(OUTDIR)\\$(TARGET).bsc" 80*b1cdbd2cSJim Jagielski@@ -24,21 +29,21 @@ 81*b1cdbd2cSJim Jagielski SBREXT = .sbr 82*b1cdbd2cSJim Jagielski 83*b1cdbd2cSJim Jagielski !IF "$(CFG)" == "DEBUG" 84*b1cdbd2cSJim Jagielski-CPP_DEBUG=/D "DEBUG" /Gm /GR /ZI /Od /RTC1 /FR"$(INTDIR)\\" /$(MLIB)d 85*b1cdbd2cSJim Jagielski+CPP_DEBUG=/D "DEBUG" /Gm /GR /Od /RTC1 /FR"$(INTDIR)\\" 86*b1cdbd2cSJim Jagielski # CPP_DEBUG=/D "DEBUG" /Gm /GR /ZI /Od /RTC1 /FR"$(INTDIR)\\" /MDd 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski OUTDIR=.\debug 89*b1cdbd2cSJim Jagielski INTDIR=.\debug_temp 90*b1cdbd2cSJim Jagielski-LINK_DEBUG= MSVCRTD.lib /debug /incremental:yes #/pdbtype:sept 91*b1cdbd2cSJim Jagielski+LINK_DEBUG= /debug 92*b1cdbd2cSJim Jagielski 93*b1cdbd2cSJim Jagielski all : lib lib_dll bsc 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski !ELSE 96*b1cdbd2cSJim Jagielski-CPP_DEBUG=/D "NDEBUG" /O2 /$(MLIB) 97*b1cdbd2cSJim Jagielski+CPP_DEBUG=/D "NDEBUG" /O2 98*b1cdbd2cSJim Jagielski # CPP_DEBUG=/D "NDEBUG" /O2 /MD 99*b1cdbd2cSJim Jagielski OUTDIR=.\release 100*b1cdbd2cSJim Jagielski INTDIR=.\release_temp 101*b1cdbd2cSJim Jagielski-LINK_DEBUG= MSVCRT.lib /incremental:no /NODEFAULTLIB:libc 102*b1cdbd2cSJim Jagielski+LINK_DEBUG= /incremental:no /NODEFAULTLIB:libc 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski all : lib lib_dll 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski@@ -48,11 +53,7 @@ 107*b1cdbd2cSJim Jagielski CPP_DEBUG=/D "TRACING" $(CPP_DEBUG) 108*b1cdbd2cSJim Jagielski !ENDIF 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski-!IF "$(OS)" == "Windows_NT" 111*b1cdbd2cSJim Jagielski NULL= 112*b1cdbd2cSJim Jagielski-!ELSE 113*b1cdbd2cSJim Jagielski-NULL=nul 114*b1cdbd2cSJim Jagielski-!ENDIF 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski clean : 117*b1cdbd2cSJim Jagielski @- rd /s/q .\release_temp 118*b1cdbd2cSJim Jagielski@@ -779,7 +780,7 @@ 119*b1cdbd2cSJim Jagielski @- $(CPP) $(CPPFLAGS) $(CPP_DEBUG) /Fo"$(INTDIR)\FileFont$(OBJEXT)" $? 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski "$(INTDIR)\FileFont_dll$(OBJEXT)" : "src/font/FileFont.cpp" 122*b1cdbd2cSJim Jagielski- @- $(CPP) $(CPPFLAGS) /D "_DLL" /Fo"$(INTDIR)\FileFont_dll$(OBJEXT)" $? 123*b1cdbd2cSJim Jagielski+ $(CPP) $(CPPFLAGS) /D "_DLL" /Fo"$(INTDIR)\FileFont_dll$(OBJEXT)" $? 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski !ENDIF 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/font/FileFont.cpp Thu Jan 22 00:36:42 2009 128*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/font/FileFont.cpp Sat Aug 22 19:36:32 2009 129*b1cdbd2cSJim Jagielski@@ -207,11 +207,11 @@ 130*b1cdbd2cSJim Jagielski cch16 += cch16Used; 131*b1cdbd2cSJim Jagielski } 132*b1cdbd2cSJim Jagielski // } 133*b1cdbd2cSJim Jagielski-#else 134*b1cdbd2cSJim Jagielski+#elif 1 135*b1cdbd2cSJim Jagielski m_stuFaceName.assign(rgchwFace); 136*b1cdbd2cSJim Jagielski- // VS 2005 needs this: 137*b1cdbd2cSJim Jagielski- //for (int cch16 = 0; cch16 < cchw; cch16++) 138*b1cdbd2cSJim Jagielski- // m_stuFaceName.push_back(rgchwFace[cch16]); 139*b1cdbd2cSJim Jagielski+#else // VS 2005 needs this: 140*b1cdbd2cSJim Jagielski+ for (int cch16 = 0; cch16 < cchw; cch16++) 141*b1cdbd2cSJim Jagielski+ m_stuFaceName.push_back(rgchwFace[cch16]); 142*b1cdbd2cSJim Jagielski #endif 143*b1cdbd2cSJim Jagielski pTable = readTable(ktiHead, lSize); 144*b1cdbd2cSJim Jagielski if (!m_fIsValid || !pTable) 145*b1cdbd2cSJim Jagielski@@ -233,7 +233,7 @@ 146*b1cdbd2cSJim Jagielski FileFont::readTable(int /*TableId*/ tid, size_t & size) 147*b1cdbd2cSJim Jagielski { 148*b1cdbd2cSJim Jagielski const TableId tableId = TableId(tid); 149*b1cdbd2cSJim Jagielski- bool isValid = true; 150*b1cdbd2cSJim Jagielski+ bool isTableValid = true; 151*b1cdbd2cSJim Jagielski size_t lOffset = 0, lSize = 0; 152*b1cdbd2cSJim Jagielski if (!m_pTableCache) 153*b1cdbd2cSJim Jagielski { 154*b1cdbd2cSJim Jagielski@@ -245,9 +245,9 @@ 155*b1cdbd2cSJim Jagielski size = m_pTableCache->getTableSize(tableId); 156*b1cdbd2cSJim Jagielski // check whether it is already in the cache 157*b1cdbd2cSJim Jagielski if (pTable) return pTable; 158*b1cdbd2cSJim Jagielski- isValid &= TtfUtil::GetTableInfo(tableId, m_pHeader, m_pTableDir, 159*b1cdbd2cSJim Jagielski+ isTableValid &= TtfUtil::GetTableInfo(tableId, m_pHeader, m_pTableDir, 160*b1cdbd2cSJim Jagielski lOffset, lSize); 161*b1cdbd2cSJim Jagielski- if (!isValid) 162*b1cdbd2cSJim Jagielski+ if (!isTableValid) 163*b1cdbd2cSJim Jagielski return NULL; 164*b1cdbd2cSJim Jagielski fseek(m_pfile, lOffset, SEEK_SET); 165*b1cdbd2cSJim Jagielski // only allocate if needed 166*b1cdbd2cSJim Jagielski@@ -255,16 +255,16 @@ 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski if (!pTable) 169*b1cdbd2cSJim Jagielski { 170*b1cdbd2cSJim Jagielski- isValid = false; 171*b1cdbd2cSJim Jagielski+ isTableValid = false; 172*b1cdbd2cSJim Jagielski return NULL; 173*b1cdbd2cSJim Jagielski } 174*b1cdbd2cSJim Jagielski size_t bytesRead = fread(pTable, 1, lSize, m_pfile); 175*b1cdbd2cSJim Jagielski- isValid = bytesRead == lSize; 176*b1cdbd2cSJim Jagielski- if (isValid) 177*b1cdbd2cSJim Jagielski+ isTableValid = bytesRead == lSize; 178*b1cdbd2cSJim Jagielski+ if (isTableValid) 179*b1cdbd2cSJim Jagielski { 180*b1cdbd2cSJim Jagielski- isValid &= TtfUtil::CheckTable(tableId, pTable, lSize); 181*b1cdbd2cSJim Jagielski+ isTableValid &= TtfUtil::CheckTable(tableId, pTable, lSize); 182*b1cdbd2cSJim Jagielski } 183*b1cdbd2cSJim Jagielski- if (!isValid) 184*b1cdbd2cSJim Jagielski+ if (!isTableValid) 185*b1cdbd2cSJim Jagielski { 186*b1cdbd2cSJim Jagielski return 0; 187*b1cdbd2cSJim Jagielski } 188*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/font/Font.cpp Tue May 20 08:04:16 2008 189*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/font/Font.cpp Sat Aug 22 19:36:33 2009 190*b1cdbd2cSJim Jagielski@@ -626,7 +626,7 @@ 191*b1cdbd2cSJim Jagielski Assert(false); 192*b1cdbd2cSJim Jagielski m_ifeat = m_cfeat; 193*b1cdbd2cSJim Jagielski } 194*b1cdbd2cSJim Jagielski- else if (m_ifeat + n < 0) 195*b1cdbd2cSJim Jagielski+ else if (static_cast<int>(m_ifeat) + n < 0) 196*b1cdbd2cSJim Jagielski { 197*b1cdbd2cSJim Jagielski // Can't decrement. 198*b1cdbd2cSJim Jagielski Assert(false); 199*b1cdbd2cSJim Jagielski@@ -727,7 +727,7 @@ 200*b1cdbd2cSJim Jagielski Assert(false); 201*b1cdbd2cSJim Jagielski m_ifset = m_cfset; 202*b1cdbd2cSJim Jagielski } 203*b1cdbd2cSJim Jagielski- if (m_ifset + n < 0) 204*b1cdbd2cSJim Jagielski+ if (static_cast<int>(m_ifset) + n < 0) 205*b1cdbd2cSJim Jagielski { 206*b1cdbd2cSJim Jagielski // Can't decrement. 207*b1cdbd2cSJim Jagielski Assert(false); 208*b1cdbd2cSJim Jagielski@@ -820,7 +820,7 @@ 209*b1cdbd2cSJim Jagielski Assert(false); 210*b1cdbd2cSJim Jagielski m_ilang = m_clang; 211*b1cdbd2cSJim Jagielski } 212*b1cdbd2cSJim Jagielski- else if (m_ilang + n < 0) 213*b1cdbd2cSJim Jagielski+ else if (static_cast<int>(m_ilang) + n < 0) 214*b1cdbd2cSJim Jagielski { 215*b1cdbd2cSJim Jagielski // Can't decrement. 216*b1cdbd2cSJim Jagielski Assert(false); 217*b1cdbd2cSJim Jagielski@@ -906,7 +906,7 @@ 218*b1cdbd2cSJim Jagielski Assert(false); 219*b1cdbd2cSJim Jagielski m_ilang = m_clang; 220*b1cdbd2cSJim Jagielski } 221*b1cdbd2cSJim Jagielski- else if (m_ilang + n < 0) 222*b1cdbd2cSJim Jagielski+ else if (static_cast<int>(m_ilang) + n < 0) 223*b1cdbd2cSJim Jagielski { 224*b1cdbd2cSJim Jagielski // Can't decrement. 225*b1cdbd2cSJim Jagielski Assert(false); 226*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/font/TtfUtil.cpp Thu Jan 29 10:33:19 2009 227*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/font/TtfUtil.cpp Sat Aug 22 19:36:33 2009 228*b1cdbd2cSJim Jagielski@@ -492,7 +492,7 @@ 229*b1cdbd2cSJim Jagielski const Sfnt::FontHeader * pTable = 230*b1cdbd2cSJim Jagielski reinterpret_cast<const Sfnt::FontHeader *>(pHead); 231*b1cdbd2cSJim Jagielski 232*b1cdbd2cSJim Jagielski- return read(((pTable->mac_style) & 0x00000002) != 0); 233*b1cdbd2cSJim Jagielski+ return ((read(pTable->mac_style) & 0x00000002) != 0); 234*b1cdbd2cSJim Jagielski } 235*b1cdbd2cSJim Jagielski 236*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 237*b1cdbd2cSJim Jagielski@@ -1108,8 +1108,8 @@ 238*b1cdbd2cSJim Jagielski { // loca entries are two bytes and have been divided by two 239*b1cdbd2cSJim Jagielski if (nGlyphId <= (lLocaSize >> 1) - 1) // allow sentinel value to be accessed 240*b1cdbd2cSJim Jagielski { 241*b1cdbd2cSJim Jagielski- const uint16 * pTable = reinterpret_cast<const uint16 *>(pLoca); 242*b1cdbd2cSJim Jagielski- return (read(pTable[nGlyphId]) << 1); 243*b1cdbd2cSJim Jagielski+ const uint16 * pTableLoca = reinterpret_cast<const uint16 *>(pLoca); 244*b1cdbd2cSJim Jagielski+ return (read(pTableLoca[nGlyphId]) << 1); 245*b1cdbd2cSJim Jagielski } 246*b1cdbd2cSJim Jagielski } 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski@@ -1117,8 +1117,8 @@ 249*b1cdbd2cSJim Jagielski { // loca entries are four bytes 250*b1cdbd2cSJim Jagielski if (nGlyphId <= (lLocaSize >> 2) - 1) 251*b1cdbd2cSJim Jagielski { 252*b1cdbd2cSJim Jagielski- const uint32 * pTable = reinterpret_cast<const uint32 *>(pLoca); 253*b1cdbd2cSJim Jagielski- return read(pTable[nGlyphId]); 254*b1cdbd2cSJim Jagielski+ const uint32 * pTableLoca = reinterpret_cast<const uint32 *>(pLoca); 255*b1cdbd2cSJim Jagielski+ return read(pTableLoca[nGlyphId]); 256*b1cdbd2cSJim Jagielski } 257*b1cdbd2cSJim Jagielski } 258*b1cdbd2cSJim Jagielski 259*b1cdbd2cSJim Jagielski@@ -1586,7 +1586,7 @@ 260*b1cdbd2cSJim Jagielski 261*b1cdbd2cSJim Jagielski for (size_t i = 0; i < cCompId; i++) 262*b1cdbd2cSJim Jagielski { 263*b1cdbd2cSJim Jagielski- void * pSimpleGlyf = GlyfLookup(static_cast<gr::gid16>(rgnCompId[i]), 264*b1cdbd2cSJim Jagielski+ pSimpleGlyf = GlyfLookup(static_cast<gr::gid16>(rgnCompId[i]), 265*b1cdbd2cSJim Jagielski pGlyf, pLoca, lLocaSize, pHead); 266*b1cdbd2cSJim Jagielski if (pSimpleGlyf == NULL) {return false;} 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski@@ -1748,7 +1748,7 @@ 269*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 270*b1cdbd2cSJim Jagielski bool GlyfPoints(gr::gid16 nGlyphId, const void * pGlyf, 271*b1cdbd2cSJim Jagielski const void * pLoca, size_t lLocaSize, const void * pHead, 272*b1cdbd2cSJim Jagielski- const int * prgnContourEndPoint, size_t cnEndPoints, 273*b1cdbd2cSJim Jagielski+ const int * /*prgnContourEndPoint*/, size_t /*cnEndPoints*/, 274*b1cdbd2cSJim Jagielski int * prgnX, int * prgnY, bool * prgfOnCurve, size_t cnPoints) 275*b1cdbd2cSJim Jagielski { 276*b1cdbd2cSJim Jagielski std::fill_n(prgnX, cnPoints, INT_MAX); 277*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/painter/SegmentPainter.cpp Wed Jan 28 04:01:29 2009 278*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/painter/SegmentPainter.cpp Sat Aug 22 19:36:33 2009 279*b1cdbd2cSJim Jagielski@@ -353,7 +353,7 @@ 280*b1cdbd2cSJim Jagielski @param bOn - true if we are turning on (ignored in this implementation) 281*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 282*b1cdbd2cSJim Jagielski bool SegmentPainter::drawSelectionRange(int ichwAnchor, int ichwEnd, 283*b1cdbd2cSJim Jagielski- float ydLineTop, float ydLineBottom, bool bOn) 284*b1cdbd2cSJim Jagielski+ float ydLineTop, float ydLineBottom, bool /*bOn*/) 285*b1cdbd2cSJim Jagielski { 286*b1cdbd2cSJim Jagielski if (g_fDrawing) 287*b1cdbd2cSJim Jagielski return true; 288*b1cdbd2cSJim Jagielski@@ -993,7 +993,7 @@ 289*b1cdbd2cSJim Jagielski an I-beam (std selection) 290*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 291*b1cdbd2cSJim Jagielski void SegmentPainter::CalcOrDrawInsertionPoint( 292*b1cdbd2cSJim Jagielski- int ichwIP, bool fAssocPrev, bool bOn, bool fForceSplit, 293*b1cdbd2cSJim Jagielski+ int ichwIP, bool fAssocPrev, bool /*bOn*/, bool fForceSplit, 294*b1cdbd2cSJim Jagielski Rect * prdPrimary, Rect * prdSecondary) 295*b1cdbd2cSJim Jagielski { 296*b1cdbd2cSJim Jagielski GrResult res = kresOk; 297*b1cdbd2cSJim Jagielski@@ -1277,7 +1277,7 @@ 298*b1cdbd2cSJim Jagielski if NULL, do the drawing 299*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 300*b1cdbd2cSJim Jagielski void SegmentPainter::InvertIBeam(float xs, float ysTop, float ysBottom, 301*b1cdbd2cSJim Jagielski- bool fAssocPrev, Rect * prdRet) 302*b1cdbd2cSJim Jagielski+ bool /*fAssocPrev*/, Rect * prdRet) 303*b1cdbd2cSJim Jagielski { 304*b1cdbd2cSJim Jagielski float xd = ScaleXToDest(xs); 305*b1cdbd2cSJim Jagielski float ydTop = ScaleYToDest(ysTop); 306*b1cdbd2cSJim Jagielski@@ -1675,7 +1675,7 @@ 307*b1cdbd2cSJim Jagielski } 308*b1cdbd2cSJim Jagielski 309*b1cdbd2cSJim Jagielski bool SegmentPainter::AtEdgeOfCluster(GrSlotOutput * psloutBase, int isloutBase, 310*b1cdbd2cSJim Jagielski- GrSlotOutput * pslout, int islout, bool fBefore) 311*b1cdbd2cSJim Jagielski+ GrSlotOutput * /*pslout*/, int islout, bool fBefore) 312*b1cdbd2cSJim Jagielski { 313*b1cdbd2cSJim Jagielski // Compare pslout to all the members of the cluster. If it is the minimum or maximum, it 314*b1cdbd2cSJim Jagielski // is at an edge. 315*b1cdbd2cSJim Jagielski@@ -1778,12 +1778,12 @@ 316*b1cdbd2cSJim Jagielski } 317*b1cdbd2cSJim Jagielski for (icomp = 0; icomp < pslout->NumberOfComponents(); icomp++) 318*b1cdbd2cSJim Jagielski { 319*b1cdbd2cSJim Jagielski- for (int ichw = pslout->FirstUnderlyingComponent(icomp) ; 320*b1cdbd2cSJim Jagielski- ichw <= pslout->LastUnderlyingComponent(icomp) ; 321*b1cdbd2cSJim Jagielski- ichw++) 322*b1cdbd2cSJim Jagielski+ for (int ichwTemp = pslout->FirstUnderlyingComponent(icomp) ; 323*b1cdbd2cSJim Jagielski+ ichwTemp <= pslout->LastUnderlyingComponent(icomp) ; 324*b1cdbd2cSJim Jagielski+ ichwTemp++) 325*b1cdbd2cSJim Jagielski { 326*b1cdbd2cSJim Jagielski- if (m_pseg->m_prgiComponent[ichw - m_pseg->m_ichwAssocsMin] == icomp) 327*b1cdbd2cSJim Jagielski- prgfAllSelected[ichw] = fAll; 328*b1cdbd2cSJim Jagielski+ if (m_pseg->m_prgiComponent[ichwTemp - m_pseg->m_ichwAssocsMin] == icomp) 329*b1cdbd2cSJim Jagielski+ prgfAllSelected[ichwTemp] = fAll; 330*b1cdbd2cSJim Jagielski } 331*b1cdbd2cSJim Jagielski } 332*b1cdbd2cSJim Jagielski } 333*b1cdbd2cSJim Jagielski@@ -2304,7 +2304,11 @@ 334*b1cdbd2cSJim Jagielski Assert that there are no overlaps among all the rectangles in the array, which should 335*b1cdbd2cSJim Jagielski be the case if AdjustRectsToNotOverlap is working properly. 336*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 337*b1cdbd2cSJim Jagielski+#ifdef _DEBUG 338*b1cdbd2cSJim Jagielski void SegmentPainter::AssertNoOverlaps(std::vector<Rect> & vrect) 339*b1cdbd2cSJim Jagielski+#else 340*b1cdbd2cSJim Jagielski+void SegmentPainter::AssertNoOverlaps(std::vector<Rect> & /*vrect*/) 341*b1cdbd2cSJim Jagielski+#endif 342*b1cdbd2cSJim Jagielski { 343*b1cdbd2cSJim Jagielski #ifdef _DEBUG 344*b1cdbd2cSJim Jagielski for (int irect1 = 0; irect1 < signed(vrect.size() - 1); irect1++) 345*b1cdbd2cSJim Jagielski@@ -2452,7 +2456,11 @@ 346*b1cdbd2cSJim Jagielski Assert that there are no overlaps among all the rectangles in the array, which should 347*b1cdbd2cSJim Jagielski be the case if AdjustRectsToNotOverlap is working properly. 348*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 349*b1cdbd2cSJim Jagielski+#ifdef _DEBUG 350*b1cdbd2cSJim Jagielski void SegmentPainter::AssertNoOverlaps(std::vector<LineSeg> & vls) 351*b1cdbd2cSJim Jagielski+#else 352*b1cdbd2cSJim Jagielski+void SegmentPainter::AssertNoOverlaps(std::vector<LineSeg> & /*vls*/) 353*b1cdbd2cSJim Jagielski+#endif 354*b1cdbd2cSJim Jagielski { 355*b1cdbd2cSJim Jagielski #ifdef _DEBUG 356*b1cdbd2cSJim Jagielski for (int ils1 = 0; ils1 < (int)vls.size() - 1; ils1++) 357*b1cdbd2cSJim Jagielski@@ -2884,7 +2892,7 @@ 358*b1cdbd2cSJim Jagielski { 359*b1cdbd2cSJim Jagielski if (icompNext != icompCurr) 360*b1cdbd2cSJim Jagielski { 361*b1cdbd2cSJim Jagielski- float xsHorizNext = (fIPOnRight) ? vxsRights[icompNext] : vxsLefts[icompNext]; 362*b1cdbd2cSJim Jagielski+ xsHorizNext = (fIPOnRight) ? vxsRights[icompNext] : vxsLefts[icompNext]; 363*b1cdbd2cSJim Jagielski if (fMovingRight && xsHorizNext > xsHorizCurr) 364*b1cdbd2cSJim Jagielski break; 365*b1cdbd2cSJim Jagielski else if (!fMovingRight && xsHorizNext < xsHorizCurr) 366*b1cdbd2cSJim Jagielski@@ -2996,7 +3004,7 @@ 367*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 368*b1cdbd2cSJim Jagielski Make sure the font is set to use the character properties required by this segment. 369*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 370*b1cdbd2cSJim Jagielski-void SegmentPainter::SetFontProps(unsigned long clrFore, unsigned long clrBack) 371*b1cdbd2cSJim Jagielski+void SegmentPainter::SetFontProps(unsigned long /*clrFore*/, unsigned long /*clrBack*/) 372*b1cdbd2cSJim Jagielski { 373*b1cdbd2cSJim Jagielski return; 374*b1cdbd2cSJim Jagielski } 375*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/FileInput.cpp Thu Jan 22 00:36:42 2009 376*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/FileInput.cpp Sat Aug 22 19:36:33 2009 377*b1cdbd2cSJim Jagielski@@ -80,7 +80,7 @@ 378*b1cdbd2cSJim Jagielski #ifdef GR_FW 379*b1cdbd2cSJim Jagielski bool GrBufferIStream::Open(std::wstring stuFileName, int kMode) 380*b1cdbd2cSJim Jagielski #else 381*b1cdbd2cSJim Jagielski-bool GrBufferIStream::Open(const char * pcFileName, std::ios::openmode kMode) 382*b1cdbd2cSJim Jagielski+bool GrBufferIStream::Open(const char * /*pcFileName*/, std::ios::openmode /*kMode*/) 383*b1cdbd2cSJim Jagielski #endif 384*b1cdbd2cSJim Jagielski { 385*b1cdbd2cSJim Jagielski Assert(false); // use OpenBuffer 386*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrCharStream.cpp Thu Jan 22 00:36:42 2009 387*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrCharStream.cpp Sat Aug 22 19:36:33 2009 388*b1cdbd2cSJim Jagielski@@ -417,8 +417,11 @@ 389*b1cdbd2cSJim Jagielski return true; 390*b1cdbd2cSJim Jagielski */ 391*b1cdbd2cSJim Jagielski } 392*b1cdbd2cSJim Jagielski- 393*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 394*b1cdbd2cSJim Jagielski+bool GrCharStream::AtUnicodeCharBoundary(utf8 * prgchs, int cchs, int ichs, UtfType /*utf*/) 395*b1cdbd2cSJim Jagielski+#else 396*b1cdbd2cSJim Jagielski bool GrCharStream::AtUnicodeCharBoundary(utf8 * prgchs, int cchs, int ichs, UtfType utf) 397*b1cdbd2cSJim Jagielski+#endif 398*b1cdbd2cSJim Jagielski { 399*b1cdbd2cSJim Jagielski Assert(ichs >= 0); 400*b1cdbd2cSJim Jagielski Assert(ichs <= cchs); 401*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrClassTable.h Thu Jan 22 00:36:42 2009 402*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrClassTable.h Sat Aug 22 19:36:33 2009 403*b1cdbd2cSJim Jagielski@@ -54,7 +54,11 @@ 404*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------------------------ 405*b1cdbd2cSJim Jagielski Copy the raw memory into the instance. 406*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------------------------*/ 407*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 408*b1cdbd2cSJim Jagielski+ void CopyFrom(data16 * pchwStart, int /*cchw*/) 409*b1cdbd2cSJim Jagielski+#else 410*b1cdbd2cSJim Jagielski void CopyFrom(data16 * pchwStart, int cchw) 411*b1cdbd2cSJim Jagielski+#endif 412*b1cdbd2cSJim Jagielski { 413*b1cdbd2cSJim Jagielski m_cgixBIG = pchwStart[0]; 414*b1cdbd2cSJim Jagielski m_digixBIGInit = pchwStart[1]; 415*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrEngine.cpp Wed Jan 28 04:01:29 2009 416*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrEngine.cpp Sat Aug 22 19:36:33 2009 417*b1cdbd2cSJim Jagielski@@ -159,12 +159,12 @@ 418*b1cdbd2cSJim Jagielski GrEngine::~GrEngine() 419*b1cdbd2cSJim Jagielski { 420*b1cdbd2cSJim Jagielski DestroyEverything(); 421*b1cdbd2cSJim Jagielski- #ifdef _MSC_VER 422*b1cdbd2cSJim Jagielski- if (!_CrtCheckMemory()) 423*b1cdbd2cSJim Jagielski- { 424*b1cdbd2cSJim Jagielski- OutputDebugString(L"bad memory"); 425*b1cdbd2cSJim Jagielski- } 426*b1cdbd2cSJim Jagielski- #endif 427*b1cdbd2cSJim Jagielski+// #ifdef _MSC_VER 428*b1cdbd2cSJim Jagielski+// if (!_CrtCheckMemory()) 429*b1cdbd2cSJim Jagielski+// { 430*b1cdbd2cSJim Jagielski+// OutputDebugString(L"bad memory"); 431*b1cdbd2cSJim Jagielski+// } 432*b1cdbd2cSJim Jagielski+// #endif 433*b1cdbd2cSJim Jagielski } 434*b1cdbd2cSJim Jagielski 435*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 436*b1cdbd2cSJim Jagielski@@ -173,12 +173,12 @@ 437*b1cdbd2cSJim Jagielski void GrEngine::DestroyEverything() 438*b1cdbd2cSJim Jagielski { 439*b1cdbd2cSJim Jagielski DestroyContents(); 440*b1cdbd2cSJim Jagielski- #ifdef _MSC_VER 441*b1cdbd2cSJim Jagielski- if (!_CrtCheckMemory()) 442*b1cdbd2cSJim Jagielski- { 443*b1cdbd2cSJim Jagielski- OutputDebugString(L"bad memory"); 444*b1cdbd2cSJim Jagielski- } 445*b1cdbd2cSJim Jagielski- #endif 446*b1cdbd2cSJim Jagielski+// #ifdef _MSC_VER 447*b1cdbd2cSJim Jagielski+// if (!_CrtCheckMemory()) 448*b1cdbd2cSJim Jagielski+// { 449*b1cdbd2cSJim Jagielski+// OutputDebugString(L"bad memory"); 450*b1cdbd2cSJim Jagielski+// } 451*b1cdbd2cSJim Jagielski+// #endif 452*b1cdbd2cSJim Jagielski 453*b1cdbd2cSJim Jagielski m_strCtrlFileReg.erase(); 454*b1cdbd2cSJim Jagielski m_strCtrlFileBold.erase(); 455*b1cdbd2cSJim Jagielski@@ -417,7 +417,11 @@ 456*b1cdbd2cSJim Jagielski @return The supported script direction(s). If more than one, the application is 457*b1cdbd2cSJim Jagielski responsible for choosing the most appropriate. 458*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 459*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 460*b1cdbd2cSJim Jagielski+GrResult GrEngine::get_ScriptDirection(unsigned int * pgrfsdc, OLECHAR * /*prgchwErrMsg*/, int /*cchMaxErrMsg*/) 461*b1cdbd2cSJim Jagielski+#else 462*b1cdbd2cSJim Jagielski GrResult GrEngine::get_ScriptDirection(unsigned int * pgrfsdc, OLECHAR * prgchwErrMsg, int cchMaxErrMsg) 463*b1cdbd2cSJim Jagielski+#endif 464*b1cdbd2cSJim Jagielski { 465*b1cdbd2cSJim Jagielski ChkGrOutPtr(pgrfsdc); 466*b1cdbd2cSJim Jagielski ChkGrArrayArg(prgchwErrMsg, cchMaxErrMsg); 467*b1cdbd2cSJim Jagielski@@ -789,7 +793,7 @@ 468*b1cdbd2cSJim Jagielski Record a system error indicating a bad error in rendering using a supposedly valid font. 469*b1cdbd2cSJim Jagielski OBSOLETE 470*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 471*b1cdbd2cSJim Jagielski-void GrEngine::RecordFontRunError(OLECHAR * prgchwErrMsg, int cchMax, GrResult res) 472*b1cdbd2cSJim Jagielski+void GrEngine::RecordFontRunError(OLECHAR * prgchwErrMsg, int cchMax, GrResult /*res*/) 473*b1cdbd2cSJim Jagielski { 474*b1cdbd2cSJim Jagielski if (prgchwErrMsg == NULL || cchMax == 0) 475*b1cdbd2cSJim Jagielski return; 476*b1cdbd2cSJim Jagielski@@ -970,7 +974,7 @@ 477*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 478*b1cdbd2cSJim Jagielski Return whether the text is asking for bold and/or italic text. 479*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 480*b1cdbd2cSJim Jagielski-void GrEngine::GetStyles(Font * pfont, int ichwMin, bool * pfBold, bool * pfItalic) 481*b1cdbd2cSJim Jagielski+void GrEngine::GetStyles(Font * pfont, int /*ichwMin*/, bool * pfBold, bool * pfItalic) 482*b1cdbd2cSJim Jagielski { 483*b1cdbd2cSJim Jagielski *pfBold = pfont->bold(); 484*b1cdbd2cSJim Jagielski *pfItalic = pfont->italic(); 485*b1cdbd2cSJim Jagielski@@ -981,7 +985,11 @@ 486*b1cdbd2cSJim Jagielski Should only be called when we know we are using a base font, or when we are reading 487*b1cdbd2cSJim Jagielski the base font to see if it is valid. 488*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 489*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 490*b1cdbd2cSJim Jagielski+void GrEngine::SwitchGraphicsFont(bool /*fBase*/) 491*b1cdbd2cSJim Jagielski+#else 492*b1cdbd2cSJim Jagielski void GrEngine::SwitchGraphicsFont(bool fBase) 493*b1cdbd2cSJim Jagielski+#endif 494*b1cdbd2cSJim Jagielski { 495*b1cdbd2cSJim Jagielski Assert(!fBase || m_stuBaseFaceName.size() > 0); 496*b1cdbd2cSJim Jagielski 497*b1cdbd2cSJim Jagielski@@ -1135,7 +1143,7 @@ 498*b1cdbd2cSJim Jagielski m_chwJShrink0 = 0xffff; 499*b1cdbd2cSJim Jagielski m_chwJStep0 = 0xffff; 500*b1cdbd2cSJim Jagielski m_chwJWeight0 = 0xffff; 501*b1cdbd2cSJim Jagielski- for (int i = 0; i < m_cJLevels; i++) 502*b1cdbd2cSJim Jagielski+ for (i = 0; i < m_cJLevels; i++) 503*b1cdbd2cSJim Jagielski { 504*b1cdbd2cSJim Jagielski // justification glyph attribute IDs 505*b1cdbd2cSJim Jagielski bTmp = grstrm.ReadByteFromFont(); 506*b1cdbd2cSJim Jagielski@@ -1210,10 +1218,12 @@ 507*b1cdbd2cSJim Jagielski 508*b1cdbd2cSJim Jagielski // rendering behaviors--ignore for now 509*b1cdbd2cSJim Jagielski byte cBehaviors = grstrm.ReadByteFromFont(); 510*b1cdbd2cSJim Jagielski- unsigned int nBehaviors[kMaxRenderingBehavior]; 511*b1cdbd2cSJim Jagielski+ int nTmp; 512*b1cdbd2cSJim Jagielski+ //unsigned int nBehaviors[kMaxRenderingBehavior]; -- this big buffer causes a stack overflow in Multiscribe; rework eventually 513*b1cdbd2cSJim Jagielski for (i = 0; i < cBehaviors; i++) 514*b1cdbd2cSJim Jagielski { 515*b1cdbd2cSJim Jagielski- nBehaviors[i] = unsigned(grstrm.ReadIntFromFont()); 516*b1cdbd2cSJim Jagielski+ //nBehaviors[i] = unsigned(grstrm.ReadIntFromFont()); 517*b1cdbd2cSJim Jagielski+ nTmp = unsigned(grstrm.ReadIntFromFont()); 518*b1cdbd2cSJim Jagielski } 519*b1cdbd2cSJim Jagielski 520*b1cdbd2cSJim Jagielski // linebreak glyph ID 521*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrFSM.cpp Thu Jan 22 00:36:42 2009 522*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrFSM.cpp Sat Aug 22 19:36:33 2009 523*b1cdbd2cSJim Jagielski@@ -46,7 +46,7 @@ 524*b1cdbd2cSJim Jagielski Fill in the FSM by reading from the font stream. 525*b1cdbd2cSJim Jagielski Assumes the stream is in the correct position. 526*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 527*b1cdbd2cSJim Jagielski-bool GrFSM::ReadFromFont(GrIStream & grstrm, int fxdVersion) 528*b1cdbd2cSJim Jagielski+bool GrFSM::ReadFromFont(GrIStream & grstrm, int /*fxdVersion*/) 529*b1cdbd2cSJim Jagielski { 530*b1cdbd2cSJim Jagielski short snTmp; 531*b1cdbd2cSJim Jagielski 532*b1cdbd2cSJim Jagielski@@ -138,7 +138,7 @@ 533*b1cdbd2cSJim Jagielski Fill in the FSM's state table by reading from the font stream. 534*b1cdbd2cSJim Jagielski Assumes the stream is in the correct position. 535*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 536*b1cdbd2cSJim Jagielski-bool GrFSM::ReadStateTableFromFont(GrIStream & grstrm, int fxdVersion) 537*b1cdbd2cSJim Jagielski+bool GrFSM::ReadStateTableFromFont(GrIStream & grstrm, int /*fxdVersion*/) 538*b1cdbd2cSJim Jagielski { 539*b1cdbd2cSJim Jagielski int cCells = ((m_crow - m_crowFinal) * m_ccol); 540*b1cdbd2cSJim Jagielski m_prgrowTransitions = new short[cCells]; 541*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrFeature.cpp Thu Jan 22 00:36:42 2009 542*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrFeature.cpp Sat Aug 22 19:36:33 2009 543*b1cdbd2cSJim Jagielski@@ -186,7 +186,7 @@ 544*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 545*b1cdbd2cSJim Jagielski Read the languages from the font. 546*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 547*b1cdbd2cSJim Jagielski-bool GrLangTable::ReadFromFont(GrIStream * pgrstrm, int fxdVersion) 548*b1cdbd2cSJim Jagielski+bool GrLangTable::ReadFromFont(GrIStream * pgrstrm, int /*fxdVersion*/) 549*b1cdbd2cSJim Jagielski { 550*b1cdbd2cSJim Jagielski GrIStream & grstrm = *pgrstrm; 551*b1cdbd2cSJim Jagielski 552*b1cdbd2cSJim Jagielski@@ -206,13 +206,22 @@ 553*b1cdbd2cSJim Jagielski 554*b1cdbd2cSJim Jagielski m_cbOffset0 = (lsbf)(m_prglang[0].cbOffsetBIG); 555*b1cdbd2cSJim Jagielski 556*b1cdbd2cSJim Jagielski- Assert((lsbf)(m_prglang[m_clang].cFeaturesBIG) == 0); // bogus entry has no settings 557*b1cdbd2cSJim Jagielski+ if ((lsbf)(m_prglang[m_clang].cFeaturesBIG) == 0) // bogus entry has no settings 558*b1cdbd2cSJim Jagielski+ { 559*b1cdbd2cSJim Jagielski cb = (lsbf)(m_prglang[m_clang].cbOffsetBIG) - m_cbOffset0; 560*b1cdbd2cSJim Jagielski- Assert(cb % sizeof(FeatSet) == 0); // # of bytes fits nicely into FeatSet class 561*b1cdbd2cSJim Jagielski+ if (cb % sizeof(FeatSet) == 0) // # of bytes fits nicely into FeatSet class 562*b1cdbd2cSJim Jagielski+ { 563*b1cdbd2cSJim Jagielski int cfset = cb / sizeof(FeatSet); 564*b1cdbd2cSJim Jagielski m_prgfset = new FeatSet[cfset]; 565*b1cdbd2cSJim Jagielski m_cfset = cfset; 566*b1cdbd2cSJim Jagielski grstrm.ReadBlockFromFont(m_prgfset, cb); 567*b1cdbd2cSJim Jagielski+ } 568*b1cdbd2cSJim Jagielski+ else return false; 569*b1cdbd2cSJim Jagielski+ } 570*b1cdbd2cSJim Jagielski+ else 571*b1cdbd2cSJim Jagielski+ { 572*b1cdbd2cSJim Jagielski+ return false; 573*b1cdbd2cSJim Jagielski+ } 574*b1cdbd2cSJim Jagielski 575*b1cdbd2cSJim Jagielski return true; 576*b1cdbd2cSJim Jagielski } 577*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrPass.cpp Wed Jan 28 04:01:29 2009 578*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrPass.cpp Sat Aug 22 19:36:34 2009 579*b1cdbd2cSJim Jagielski@@ -279,9 +279,10 @@ 580*b1cdbd2cSJim Jagielski @param twsh - how we are handling trailing white-space 581*b1cdbd2cSJim Jagielski @param pnRet - return value 582*b1cdbd2cSJim Jagielski @param pcslotGot - return the number of slots gotten 583*b1cdbd2cSJim Jagielski- @param pislotFinalBreak - return the index of the final slot, when we are removing 584*b1cdbd2cSJim Jagielski- the trailing white-space and so the end of the segment 585*b1cdbd2cSJim Jagielski- will be before the any actual line-break slot 586*b1cdbd2cSJim Jagielski+ @param pislotFinalBreak - index of the final slot (LB or actual glyph), or -1; 587*b1cdbd2cSJim Jagielski+ adjusted when we are removing the trailing white-space and 588*b1cdbd2cSJim Jagielski+ so the end of the segment will be before the any actual 589*b1cdbd2cSJim Jagielski+ line-break slot 590*b1cdbd2cSJim Jagielski 591*b1cdbd2cSJim Jagielski @return kNextPass if we were able to generated the number requested, or processing is 592*b1cdbd2cSJim Jagielski complete; otherwise return the number of slots needed from the previous pass. 593*b1cdbd2cSJim Jagielski@@ -465,7 +466,7 @@ 594*b1cdbd2cSJim Jagielski void GrBidiPass::ExtendOutput(GrTableManager * ptman, 595*b1cdbd2cSJim Jagielski GrSlotStream* psstrmIn, GrSlotStream* psstrmOut, 596*b1cdbd2cSJim Jagielski int cslotNeededByNext, TrWsHandling twsh, 597*b1cdbd2cSJim Jagielski- int * pnRet, int * pcslotGot, int * pislotFinalBreak) 598*b1cdbd2cSJim Jagielski+ int * pnRet, int * pcslotGot, int * /*pislotFinalBreak*/) 599*b1cdbd2cSJim Jagielski { 600*b1cdbd2cSJim Jagielski Assert(psstrmIn->SlotsToReprocess() == 0); 601*b1cdbd2cSJim Jagielski 602*b1cdbd2cSJim Jagielski@@ -776,7 +777,7 @@ 603*b1cdbd2cSJim Jagielski int GrPass::ExtendFinalOutput(GrTableManager * ptman, 604*b1cdbd2cSJim Jagielski GrSlotStream * psstrmInput, GrSlotStream * psstrmOutput, 605*b1cdbd2cSJim Jagielski float xsSpaceAllotted, bool fWidthIsCharCount, bool fInfiniteWidth, 606*b1cdbd2cSJim Jagielski- bool fHaveLineBreak, bool fMustBacktrack, LineBrk lbMax, TrWsHandling twsh, 607*b1cdbd2cSJim Jagielski+ bool fHaveLineBreak, bool fMustBacktrack, LineBrk /*lbMax*/, TrWsHandling twsh, 608*b1cdbd2cSJim Jagielski int * pislotLB, float * pxsWidth) 609*b1cdbd2cSJim Jagielski { 610*b1cdbd2cSJim Jagielski EngineState * pengst = ptman->State(); 611*b1cdbd2cSJim Jagielski@@ -897,7 +898,11 @@ 612*b1cdbd2cSJim Jagielski Remove undesirable trailing white-space. 613*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 614*b1cdbd2cSJim Jagielski int GrPass::RemoveTrailingWhiteSpace(GrTableManager * ptman, GrSlotStream * psstrmOut, 615*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 616*b1cdbd2cSJim Jagielski+ TrWsHandling /*twsh*/, int * pislotFinalBreak) 617*b1cdbd2cSJim Jagielski+#else 618*b1cdbd2cSJim Jagielski TrWsHandling twsh, int * pislotFinalBreak) 619*b1cdbd2cSJim Jagielski+#endif 620*b1cdbd2cSJim Jagielski { 621*b1cdbd2cSJim Jagielski EngineState * pengst = ptman->State(); 622*b1cdbd2cSJim Jagielski 623*b1cdbd2cSJim Jagielski@@ -944,7 +949,7 @@ 624*b1cdbd2cSJim Jagielski should never be necessary if they've set up their tables right. 625*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 626*b1cdbd2cSJim Jagielski void GrPass::CheckInputProgress(GrSlotStream * psstrmInput, GrSlotStream * psstrmOutput, 627*b1cdbd2cSJim Jagielski- int islotOrigInput) 628*b1cdbd2cSJim Jagielski+ int /*islotOrigInput*/) 629*b1cdbd2cSJim Jagielski { 630*b1cdbd2cSJim Jagielski int islotInput = psstrmInput->ReadPosForNextGet(); 631*b1cdbd2cSJim Jagielski // Assert(islotInput >= islotOrigInput); -- no longer true now that we can back up 632*b1cdbd2cSJim Jagielski@@ -1752,7 +1757,7 @@ 633*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 634*b1cdbd2cSJim Jagielski int GrPass::Unwind(GrTableManager * ptman, 635*b1cdbd2cSJim Jagielski int islotChanged, GrSlotStream * psstrmIn, GrSlotStream * psstrmOut, 636*b1cdbd2cSJim Jagielski- bool fFirst) 637*b1cdbd2cSJim Jagielski+ bool /*fFirst*/) 638*b1cdbd2cSJim Jagielski { 639*b1cdbd2cSJim Jagielski // Back up the number of slots required for the longest rule context, 640*b1cdbd2cSJim Jagielski // but if we land in the middle of a chunk, go forward to its boundary. 641*b1cdbd2cSJim Jagielski@@ -1824,7 +1829,7 @@ 642*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 643*b1cdbd2cSJim Jagielski int GrBidiPass::Unwind(GrTableManager * ptman, 644*b1cdbd2cSJim Jagielski int islotChanged, GrSlotStream * psstrmIn, GrSlotStream * psstrmOut, 645*b1cdbd2cSJim Jagielski- bool fFirst) 646*b1cdbd2cSJim Jagielski+ bool /*fFirst*/) 647*b1cdbd2cSJim Jagielski { 648*b1cdbd2cSJim Jagielski int islotIn; 649*b1cdbd2cSJim Jagielski int islotOut; 650*b1cdbd2cSJim Jagielski@@ -1901,8 +1906,8 @@ 651*b1cdbd2cSJim Jagielski OBSOLETE 652*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 653*b1cdbd2cSJim Jagielski //:Ignore 654*b1cdbd2cSJim Jagielski-void GrPosPass::Unattach(GrSlotStream * psstrmIn, int islotIn, 655*b1cdbd2cSJim Jagielski- GrSlotStream * psstrmOut, int islotOut, int islotLB) 656*b1cdbd2cSJim Jagielski+void GrPosPass::Unattach(GrSlotStream * /*psstrmIn*/, int /*islotIn*/, 657*b1cdbd2cSJim Jagielski+ GrSlotStream * /*psstrmOut*/, int /*islotOut*/, int /*islotLB*/) 658*b1cdbd2cSJim Jagielski { 659*b1cdbd2cSJim Jagielski // Because this is a positioning pass, there is a one-to-one correspondence between 660*b1cdbd2cSJim Jagielski // the slots in the input and the slots in the output. Thus we can make simplifying 661*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrPass.h Thu Aug 21 16:24:32 2008 662*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrPass.h Sat Aug 22 19:36:34 2009 663*b1cdbd2cSJim Jagielski@@ -197,7 +197,7 @@ 664*b1cdbd2cSJim Jagielski bool ReadFromFont(GrIStream & grstrm, int fxdSilfVersion, int fxdRuleVersion, int nOffset); 665*b1cdbd2cSJim Jagielski void InitializeWithNoRules(); 666*b1cdbd2cSJim Jagielski 667*b1cdbd2cSJim Jagielski- virtual void SetTopDirLevel(int n) 668*b1cdbd2cSJim Jagielski+ virtual void SetTopDirLevel(int /*n*/) 669*b1cdbd2cSJim Jagielski { // only GrBidiPass does anything interesting 670*b1cdbd2cSJim Jagielski } 671*b1cdbd2cSJim Jagielski 672*b1cdbd2cSJim Jagielski@@ -253,13 +253,13 @@ 673*b1cdbd2cSJim Jagielski m_pzpst->SetResyncSkip(n); 674*b1cdbd2cSJim Jagielski } 675*b1cdbd2cSJim Jagielski 676*b1cdbd2cSJim Jagielski- virtual void DoCleanUpSegMin(GrTableManager * ptman, 677*b1cdbd2cSJim Jagielski- GrSlotStream * psstrmIn, int islotInitReadPos, GrSlotStream * psstrmOut) 678*b1cdbd2cSJim Jagielski+ virtual void DoCleanUpSegMin(GrTableManager * /*ptman*/, 679*b1cdbd2cSJim Jagielski+ GrSlotStream * /*psstrmIn*/, int /*islotInitReadPos*/, GrSlotStream * /*psstrmOut*/) 680*b1cdbd2cSJim Jagielski { 681*b1cdbd2cSJim Jagielski } 682*b1cdbd2cSJim Jagielski 683*b1cdbd2cSJim Jagielski- virtual void DoCleanUpSegLim(GrTableManager * ptman, GrSlotStream * psstrmOut, 684*b1cdbd2cSJim Jagielski- TrWsHandling twsh) 685*b1cdbd2cSJim Jagielski+ virtual void DoCleanUpSegLim(GrTableManager * /*ptman*/, GrSlotStream * /*psstrmOut*/, 686*b1cdbd2cSJim Jagielski+ TrWsHandling /*twsh*/) 687*b1cdbd2cSJim Jagielski { 688*b1cdbd2cSJim Jagielski } 689*b1cdbd2cSJim Jagielski 690*b1cdbd2cSJim Jagielski@@ -383,8 +383,8 @@ 691*b1cdbd2cSJim Jagielski void MapChunks(GrSlotStream * psstrmIn, GrSlotStream * psstrmOut, 692*b1cdbd2cSJim Jagielski int islotChunkI, int islotChunkO, int cslotReprocessed); 693*b1cdbd2cSJim Jagielski 694*b1cdbd2cSJim Jagielski- virtual void Unattach(GrSlotStream * psstrmIn, int islotIn, // GrPosPass overrides 695*b1cdbd2cSJim Jagielski- GrSlotStream * psstrmOut, int islotOut, int islotLB) 696*b1cdbd2cSJim Jagielski+ virtual void Unattach(GrSlotStream * /*psstrmIn*/, int /*islotIn*/, // GrPosPass overrides 697*b1cdbd2cSJim Jagielski+ GrSlotStream * /*psstrmOut*/, int /*islotOut*/, int /*islotLB*/) 698*b1cdbd2cSJim Jagielski { 699*b1cdbd2cSJim Jagielski } 700*b1cdbd2cSJim Jagielski 701*b1cdbd2cSJim Jagielski@@ -500,8 +500,8 @@ 702*b1cdbd2cSJim Jagielski 703*b1cdbd2cSJim Jagielski protected: 704*b1cdbd2cSJim Jagielski // Irrelevant when generating glyphs. 705*b1cdbd2cSJim Jagielski- virtual void RunRule(GrTableManager *, int ruln, 706*b1cdbd2cSJim Jagielski- GrSlotStream * psstrmInput, GrSlotStream * psstrmOutput) 707*b1cdbd2cSJim Jagielski+ virtual void RunRule(GrTableManager *, int /*ruln*/, 708*b1cdbd2cSJim Jagielski+ GrSlotStream * /*psstrmInput*/, GrSlotStream * /*psstrmOutput*/) 709*b1cdbd2cSJim Jagielski { 710*b1cdbd2cSJim Jagielski Assert(false); 711*b1cdbd2cSJim Jagielski } 712*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrPassActionCode.cpp Wed Jan 28 04:01:29 2009 713*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrPassActionCode.cpp Sat Aug 22 19:36:34 2009 714*b1cdbd2cSJim Jagielski@@ -632,8 +632,13 @@ 715*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 716*b1cdbd2cSJim Jagielski We are finished processing a slot; go on to the next slot, or possibly go backwards. 717*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 718*b1cdbd2cSJim Jagielski-void GrPass::DoNext(GrTableManager * ptman, 719*b1cdbd2cSJim Jagielski- int cslot, GrSlotStream * psstrmIn, GrSlotStream * psstrmOut) 720*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 721*b1cdbd2cSJim Jagielski+void GrPass::DoNext(GrTableManager * /*ptman*/, 722*b1cdbd2cSJim Jagielski+ int /*cslot*/, GrSlotStream * /*psstrmIn*/, GrSlotStream * /*psstrmOut*/) 723*b1cdbd2cSJim Jagielski+#else 724*b1cdbd2cSJim Jagielski+void GrPass::DoNext(GrTableManager * /*ptman*/, 725*b1cdbd2cSJim Jagielski+ int cslot, GrSlotStream * /*psstrmIn*/, GrSlotStream * /*psstrmOut*/) 726*b1cdbd2cSJim Jagielski+#endif 727*b1cdbd2cSJim Jagielski { 728*b1cdbd2cSJim Jagielski gAssert(cslot == 1); // for now anyway 729*b1cdbd2cSJim Jagielski } 730*b1cdbd2cSJim Jagielski@@ -690,6 +695,7 @@ 731*b1cdbd2cSJim Jagielski psstrmOut->SetSegMinToWritePos(false); 732*b1cdbd2cSJim Jagielski if (fSetSegLim) 733*b1cdbd2cSJim Jagielski psstrmOut->SetSegLimToWritePos(false); 734*b1cdbd2cSJim Jagielski+ //gid16 chw; chw = pslotNew->GlyphID(); 735*b1cdbd2cSJim Jagielski psstrmOut->NextPut(pslotNew); 736*b1cdbd2cSJim Jagielski } 737*b1cdbd2cSJim Jagielski 738*b1cdbd2cSJim Jagielski@@ -729,6 +735,7 @@ 739*b1cdbd2cSJim Jagielski psstrmOut->SetSegMinToWritePos(false); 740*b1cdbd2cSJim Jagielski if (fSetSegLim) 741*b1cdbd2cSJim Jagielski psstrmOut->SetSegLimToWritePos(false); 742*b1cdbd2cSJim Jagielski+ //gid16 chw; chw = pslotNew->GlyphID(); 743*b1cdbd2cSJim Jagielski psstrmOut->NextPut(pslotNew); 744*b1cdbd2cSJim Jagielski } 745*b1cdbd2cSJim Jagielski 746*b1cdbd2cSJim Jagielski@@ -825,7 +832,7 @@ 747*b1cdbd2cSJim Jagielski @param psstrmIn / Out - input/output streams 748*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 749*b1cdbd2cSJim Jagielski void GrPass::DoPutSubs3(GrTableManager * ptman, bool fInserting, 750*b1cdbd2cSJim Jagielski- int cslotSel1, int nSelClass1, int cslotSel2, int nSelClass2, int cslotSel3, int nSelClass3, 751*b1cdbd2cSJim Jagielski+ int cslotSel1, int nSelClass1, int cslotSel2, int nSelClass2, int /*cslotSel3*/, int nSelClass3, 752*b1cdbd2cSJim Jagielski int nReplacementClass, 753*b1cdbd2cSJim Jagielski GrSlotStream * psstrmIn, GrSlotStream * psstrmOut) 754*b1cdbd2cSJim Jagielski { 755*b1cdbd2cSJim Jagielski@@ -888,7 +895,7 @@ 756*b1cdbd2cSJim Jagielski Common part of all the DoPutSubs... methods. 757*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 758*b1cdbd2cSJim Jagielski void GrPass::DoPutSubsAux(GrTableManager * ptman, bool fInserting, gid16 nGlyphReplacement, 759*b1cdbd2cSJim Jagielski- GrSlotStream * psstrmIn, GrSlotStream * psstrmOut, GrSlotState * pslotNextInput, 760*b1cdbd2cSJim Jagielski+ GrSlotStream * /*psstrmIn*/, GrSlotStream * psstrmOut, GrSlotState * pslotNextInput, 761*b1cdbd2cSJim Jagielski bool fAtSegMin, bool fAtSegLim) 762*b1cdbd2cSJim Jagielski { 763*b1cdbd2cSJim Jagielski EngineState * pengst = ptman->State(); 764*b1cdbd2cSJim Jagielski@@ -915,6 +922,7 @@ 765*b1cdbd2cSJim Jagielski psstrmOut->SetSegMinToWritePos(false); 766*b1cdbd2cSJim Jagielski if (fSetSegLim) 767*b1cdbd2cSJim Jagielski psstrmOut->SetSegLimToWritePos(false); 768*b1cdbd2cSJim Jagielski+ //gid16 chw; chw = pslotNew->GlyphID(); 769*b1cdbd2cSJim Jagielski psstrmOut->NextPut(pslotNew); 770*b1cdbd2cSJim Jagielski } 771*b1cdbd2cSJim Jagielski 772*b1cdbd2cSJim Jagielski@@ -924,7 +932,7 @@ 773*b1cdbd2cSJim Jagielski and its after-assoc to the slot before it. This makes it basically unselectable. 774*b1cdbd2cSJim Jagielski OBSOLETE - handled by slot initialization code 775*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 776*b1cdbd2cSJim Jagielski-void GrPass::SetNeutralAssocs(GrSlotState * pslotNew, GrSlotStream * psstrmIn) 777*b1cdbd2cSJim Jagielski+void GrPass::SetNeutralAssocs(GrSlotState * pslotNew, GrSlotStream * /*psstrmIn*/) 778*b1cdbd2cSJim Jagielski { 779*b1cdbd2cSJim Jagielski pslotNew->ClearAssocs(); 780*b1cdbd2cSJim Jagielski } 781*b1cdbd2cSJim Jagielski@@ -943,6 +951,7 @@ 782*b1cdbd2cSJim Jagielski psstrmOut->SetSegLimToWritePos(); 783*b1cdbd2cSJim Jagielski 784*b1cdbd2cSJim Jagielski GrSlotState * pslot = psstrmIn->NextGet(); 785*b1cdbd2cSJim Jagielski+ //gid16 chw; chw = pslotNew->GlyphID(); 786*b1cdbd2cSJim Jagielski pslot->MarkDeleted(); 787*b1cdbd2cSJim Jagielski 788*b1cdbd2cSJim Jagielski if (ptman->LoggingTransduction()) 789*b1cdbd2cSJim Jagielski@@ -957,7 +966,7 @@ 790*b1cdbd2cSJim Jagielski @param fInserting - whether current slot was inserted 791*b1cdbd2cSJim Jagielski @param psstrmIn / Out - input/output streams 792*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 793*b1cdbd2cSJim Jagielski-void GrPass::DoAssoc(int cnAssocs, std::vector<int> & vnAssocs, bool fInserting, 794*b1cdbd2cSJim Jagielski+void GrPass::DoAssoc(int cnAssocs, std::vector<int> & vnAssocs, bool /*fInserting*/, 795*b1cdbd2cSJim Jagielski GrSlotStream * psstrmIn, GrSlotStream * psstrmOut) 796*b1cdbd2cSJim Jagielski { 797*b1cdbd2cSJim Jagielski gAssert((unsigned)cnAssocs == vnAssocs.size()); 798*b1cdbd2cSJim Jagielski@@ -997,7 +1006,11 @@ 799*b1cdbd2cSJim Jagielski @param vnStack - stack to read value from 800*b1cdbd2cSJim Jagielski @param psstrmIn / Out - input/output streams 801*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 802*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 803*b1cdbd2cSJim Jagielski+void GrPass::DoSetAttr(GrTableManager * ptman, ActionCommand op, bool /*fInserting*/, 804*b1cdbd2cSJim Jagielski+#else 805*b1cdbd2cSJim Jagielski void GrPass::DoSetAttr(GrTableManager * ptman, ActionCommand op, bool fInserting, 806*b1cdbd2cSJim Jagielski+#endif 807*b1cdbd2cSJim Jagielski SlotAttrName slat, int slati, std::vector<int> & vnStack, 808*b1cdbd2cSJim Jagielski GrSlotStream * psstrmIn, GrSlotStream * psstrmOut) 809*b1cdbd2cSJim Jagielski { 810*b1cdbd2cSJim Jagielski@@ -1192,7 +1205,7 @@ 811*b1cdbd2cSJim Jagielski @param psstrmIn - input stream 812*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 813*b1cdbd2cSJim Jagielski void GrPass::DoPushSlotAttr(GrTableManager * ptman, 814*b1cdbd2cSJim Jagielski- int nSlotRef, bool fInserting, 815*b1cdbd2cSJim Jagielski+ int nSlotRef, bool /*fInserting*/, 816*b1cdbd2cSJim Jagielski SlotAttrName slat, int slati, std::vector<int> & vnStack, 817*b1cdbd2cSJim Jagielski GrSlotStream * psstrmIn, GrSlotStream * psstrmOut) 818*b1cdbd2cSJim Jagielski { 819*b1cdbd2cSJim Jagielski@@ -1236,16 +1249,16 @@ 820*b1cdbd2cSJim Jagielski 821*b1cdbd2cSJim Jagielski case kslatAttTo: nVal = pslot->AttachTo(); break; 822*b1cdbd2cSJim Jagielski case kslatAttLevel: nVal = pslot->AttachLevel(); break; 823*b1cdbd2cSJim Jagielski- case kslatAttAtX: nVal = pslot->AttachAtX(ptman, psstrmIn); break; 824*b1cdbd2cSJim Jagielski case kslatAttAtY: nVal = pslot->AttachAtY(); break; 825*b1cdbd2cSJim Jagielski case kslatAttAtGpt: nVal = pslot->AttachAtGpoint(); break; 826*b1cdbd2cSJim Jagielski case kslatAttAtXoff: nVal = pslot->AttachAtXOffset(); break; 827*b1cdbd2cSJim Jagielski case kslatAttAtYoff: nVal = pslot->AttachAtYOffset(); break; 828*b1cdbd2cSJim Jagielski- case kslatAttWithX: nVal = pslot->AttachWithX(ptman, psstrmIn); break; 829*b1cdbd2cSJim Jagielski case kslatAttWithY: nVal = pslot->AttachWithY(); break; 830*b1cdbd2cSJim Jagielski case kslatAttWithGpt: nVal = pslot->AttachWithGpoint(); break; 831*b1cdbd2cSJim Jagielski case kslatAttWithXoff: nVal = pslot->AttachWithXOffset(); break; 832*b1cdbd2cSJim Jagielski case kslatAttWithYoff: nVal = pslot->AttachWithYOffset(); break; 833*b1cdbd2cSJim Jagielski+ case kslatAttAtX: nVal = pslot->AttachAtX(ptman, psstrmIn); break; 834*b1cdbd2cSJim Jagielski+ case kslatAttWithX: nVal = pslot->AttachWithX(ptman, psstrmIn); break; 835*b1cdbd2cSJim Jagielski 836*b1cdbd2cSJim Jagielski case kslatMeasureSol: nVal = pslot->MeasureSol(); break; 837*b1cdbd2cSJim Jagielski case kslatMeasureEol: nVal = pslot->MeasureEol(); break; 838*b1cdbd2cSJim Jagielski@@ -1282,7 +1295,7 @@ 839*b1cdbd2cSJim Jagielski @param vnStack - stack to push onto 840*b1cdbd2cSJim Jagielski @param psstrmIn - input stream 841*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 842*b1cdbd2cSJim Jagielski-void GrPass::DoPushGlyphAttr(GrTableManager * ptman, int nSlotRef, bool fInserting, 843*b1cdbd2cSJim Jagielski+void GrPass::DoPushGlyphAttr(GrTableManager * ptman, int nSlotRef, bool /*fInserting*/, 844*b1cdbd2cSJim Jagielski int nGlyphAttr, 845*b1cdbd2cSJim Jagielski std::vector<int> & vnStack, GrSlotStream * psstrmIn, GrSlotStream * psstrmOut) 846*b1cdbd2cSJim Jagielski { 847*b1cdbd2cSJim Jagielski@@ -1307,7 +1320,7 @@ 848*b1cdbd2cSJim Jagielski @param vnStack - stack to push onto 849*b1cdbd2cSJim Jagielski @param psstrmIn - input stream 850*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 851*b1cdbd2cSJim Jagielski-void GrPass::DoPushAttToGlyphAttr(GrTableManager * ptman, int nSlotRef, bool fInserting, 852*b1cdbd2cSJim Jagielski+void GrPass::DoPushAttToGlyphAttr(GrTableManager * ptman, int nSlotRef, bool /*fInserting*/, 853*b1cdbd2cSJim Jagielski int nGlyphAttr, std::vector<int> & vnStack, 854*b1cdbd2cSJim Jagielski GrSlotStream * psstrmIn, GrSlotStream * psstrmOut) 855*b1cdbd2cSJim Jagielski { 856*b1cdbd2cSJim Jagielski@@ -1337,7 +1350,7 @@ 857*b1cdbd2cSJim Jagielski @param vnStack - stack to push onto 858*b1cdbd2cSJim Jagielski @param psstrmIn - input stream 859*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 860*b1cdbd2cSJim Jagielski-void GrPass::DoPushGlyphMetric(GrTableManager * ptman, int nSlotRef, bool fInserting, 861*b1cdbd2cSJim Jagielski+void GrPass::DoPushGlyphMetric(GrTableManager * ptman, int nSlotRef, bool /*fInserting*/, 862*b1cdbd2cSJim Jagielski int nGlyphAttr, int nAttLevel, 863*b1cdbd2cSJim Jagielski std::vector<int> & vnStack, GrSlotStream * psstrmIn, GrSlotStream * psstrmOut) 864*b1cdbd2cSJim Jagielski { 865*b1cdbd2cSJim Jagielski@@ -1364,7 +1377,7 @@ 866*b1cdbd2cSJim Jagielski @param psstrmIn - input stream 867*b1cdbd2cSJim Jagielski @param psstrmOut - output stream 868*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 869*b1cdbd2cSJim Jagielski-void GrPass::DoPushAttToGlyphMetric(GrTableManager * ptman, int nSlotRef, bool fInserting, 870*b1cdbd2cSJim Jagielski+void GrPass::DoPushAttToGlyphMetric(GrTableManager * ptman, int nSlotRef, bool /*fInserting*/, 871*b1cdbd2cSJim Jagielski int nGlyphAttr, int nAttLevel, 872*b1cdbd2cSJim Jagielski std::vector<int> & vnStack, 873*b1cdbd2cSJim Jagielski GrSlotStream * psstrmIn, GrSlotStream * psstrmOut) 874*b1cdbd2cSJim Jagielski@@ -1399,7 +1412,7 @@ 875*b1cdbd2cSJim Jagielski } 876*b1cdbd2cSJim Jagielski else 877*b1cdbd2cSJim Jagielski { 878*b1cdbd2cSJim Jagielski- pslot->CalcCompositeMetrics(ptman, psstrmIn, nAttLevel, true); 879*b1cdbd2cSJim Jagielski+ pslot->CalcCompositeMetrics(ptman, psstrmIn, NULL, nAttLevel, true); 880*b1cdbd2cSJim Jagielski 881*b1cdbd2cSJim Jagielski float xy; 882*b1cdbd2cSJim Jagielski switch (gmet) 883*b1cdbd2cSJim Jagielski@@ -1435,7 +1448,11 @@ 884*b1cdbd2cSJim Jagielski @param psstrmIn - input stream 885*b1cdbd2cSJim Jagielski @param psstrmOut - output stream 886*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 887*b1cdbd2cSJim Jagielski-void GrPass::DoPushFeatValue(GrTableManager * ptman, int nSlotRef, bool fInserting, 888*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 889*b1cdbd2cSJim Jagielski+void GrPass::DoPushFeatValue(GrTableManager * /*ptman*/, int nSlotRef, bool /*fInserting*/, 890*b1cdbd2cSJim Jagielski+#else 891*b1cdbd2cSJim Jagielski+void GrPass::DoPushFeatValue(GrTableManager * /*ptman*/, int nSlotRef, bool fInserting, 892*b1cdbd2cSJim Jagielski+#endif 893*b1cdbd2cSJim Jagielski int nFeat, std::vector<int> & vnStack, GrSlotStream * psstrmIn, GrSlotStream * psstrmOut) 894*b1cdbd2cSJim Jagielski { 895*b1cdbd2cSJim Jagielski gAssert(!fInserting); 896*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrSlotState.cpp Wed Jan 28 04:01:29 2009 897*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrSlotState.cpp Sat Aug 22 19:36:34 2009 898*b1cdbd2cSJim Jagielski@@ -261,7 +261,7 @@ 899*b1cdbd2cSJim Jagielski root or attached leaf slots. 900*b1cdbd2cSJim Jagielski OBSOLETE 901*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 902*b1cdbd2cSJim Jagielski-void GrSlotState::FixAttachmentTree(GrSlotState * pslotOld) 903*b1cdbd2cSJim Jagielski+void GrSlotState::FixAttachmentTree(GrSlotState * /*pslotOld*/) 904*b1cdbd2cSJim Jagielski { 905*b1cdbd2cSJim Jagielski #if 0 906*b1cdbd2cSJim Jagielski pslotOld->m_vpslotAttLeaves.CopyTo(m_vpslotAttLeaves); 907*b1cdbd2cSJim Jagielski@@ -524,13 +524,13 @@ 908*b1cdbd2cSJim Jagielski GrSlotState * pslot; 909*b1cdbd2cSJim Jagielski if (HasComponents()) 910*b1cdbd2cSJim Jagielski { 911*b1cdbd2cSJim Jagielski- for (int iComponent = 0; iComponent < m_cnCompPerLig; iComponent++) 912*b1cdbd2cSJim Jagielski+ for (int iLigComponent = 0; iLigComponent < m_cnCompPerLig; iLigComponent++) 913*b1cdbd2cSJim Jagielski { 914*b1cdbd2cSJim Jagielski- pslot = CompRefSlot(iComponent); 915*b1cdbd2cSJim Jagielski+ pslot = CompRefSlot(iLigComponent); 916*b1cdbd2cSJim Jagielski if (pslot) 917*b1cdbd2cSJim Jagielski { 918*b1cdbd2cSJim Jagielski Assert(PassModified() >= pslot->PassModified()); 919*b1cdbd2cSJim Jagielski- pslot->AllComponentRefs(vichw, vicomp, iComponent); 920*b1cdbd2cSJim Jagielski+ pslot->AllComponentRefs(vichw, vicomp, iLigComponent); 921*b1cdbd2cSJim Jagielski } 922*b1cdbd2cSJim Jagielski } 923*b1cdbd2cSJim Jagielski } 924*b1cdbd2cSJim Jagielski@@ -1024,7 +1024,7 @@ 925*b1cdbd2cSJim Jagielski NOTE: the caller is responsible to zap the cached positions of following glyphs 926*b1cdbd2cSJim Jagielski in the stream. 927*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 928*b1cdbd2cSJim Jagielski-void GrSlotState::AttachToRoot(GrTableManager * ptman, GrSlotStream * psstrm, 929*b1cdbd2cSJim Jagielski+void GrSlotState::AttachToRoot(GrTableManager * /*ptman*/, GrSlotStream * psstrm, 930*b1cdbd2cSJim Jagielski GrSlotState * pslotNewRoot) 931*b1cdbd2cSJim Jagielski { 932*b1cdbd2cSJim Jagielski GrSlotState * pslotOldRoot = (m_dislotRootFixed == 0) ? 933*b1cdbd2cSJim Jagielski@@ -1063,7 +1063,7 @@ 934*b1cdbd2cSJim Jagielski 935*b1cdbd2cSJim Jagielski float xsWidth, xsVisWidth; 936*b1cdbd2cSJim Jagielski if (m_xsPositionX == kNegInfFloat || m_ysPositionY == kNegInfFloat) 937*b1cdbd2cSJim Jagielski- ptman->CalcPositionsUpTo(psstrmOut->m_ipass, this, &xsWidth, &xsVisWidth); 938*b1cdbd2cSJim Jagielski+ ptman->CalcPositionsUpTo(psstrmOut->m_ipass, this, true, &xsWidth, &xsVisWidth); 939*b1cdbd2cSJim Jagielski 940*b1cdbd2cSJim Jagielski *pmXPos = ptman->LogToEmUnits(m_xsPositionX); 941*b1cdbd2cSJim Jagielski *pmYPos = ptman->LogToEmUnits(m_ysPositionY); 942*b1cdbd2cSJim Jagielski@@ -1077,7 +1077,7 @@ 943*b1cdbd2cSJim Jagielski { 944*b1cdbd2cSJim Jagielski Assert(m_dislotRootFixed == m_srAttachTo); 945*b1cdbd2cSJim Jagielski GrSlotState * pslotRoot = AttachRoot(psstrm); 946*b1cdbd2cSJim Jagielski- CalcRootMetrics(ptman, psstrm, kPosInfinity); 947*b1cdbd2cSJim Jagielski+ CalcRootMetrics(ptman, psstrm, NULL, kPosInfinity); 948*b1cdbd2cSJim Jagielski if (pslotRoot) 949*b1cdbd2cSJim Jagielski pslotRoot->AdjustRootMetrics(ptman, psstrm); 950*b1cdbd2cSJim Jagielski } 951*b1cdbd2cSJim Jagielski@@ -1086,13 +1086,15 @@ 952*b1cdbd2cSJim Jagielski Calculate the composite metrics for this slot. 953*b1cdbd2cSJim Jagielski 954*b1cdbd2cSJim Jagielski @param psstrm - stream for which we are calculating it 955*b1cdbd2cSJim Jagielski+ @param psstrmNext - because when processing in the middle of a pass, we may need to 956*b1cdbd2cSJim Jagielski+ get the slot from the following (output) stream 957*b1cdbd2cSJim Jagielski @param nLevel - attachment level we are asking for; kPosInifinity means all levels 958*b1cdbd2cSJim Jagielski @param fThorough - true: do a thorough recalculation; false: don't recalculate 959*b1cdbd2cSJim Jagielski metrics for leaves (are they assumed to be accurate???) 960*b1cdbd2cSJim Jagielski --currently not used 961*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 962*b1cdbd2cSJim Jagielski void GrSlotState::CalcCompositeMetrics(GrTableManager * ptman, GrSlotStream * psstrm, 963*b1cdbd2cSJim Jagielski- int nLevel, bool fThorough) 964*b1cdbd2cSJim Jagielski+ GrSlotStream * psstrmNext, int nLevel, bool fThorough) 965*b1cdbd2cSJim Jagielski { 966*b1cdbd2cSJim Jagielski if (m_nCompositeLevel == nLevel) 967*b1cdbd2cSJim Jagielski return; 968*b1cdbd2cSJim Jagielski@@ -1101,19 +1103,38 @@ 969*b1cdbd2cSJim Jagielski { 970*b1cdbd2cSJim Jagielski Assert(m_dislotRootFixed == m_srAttachTo); 971*b1cdbd2cSJim Jagielski GrSlotState * pslotRoot = AttachRoot(psstrm); 972*b1cdbd2cSJim Jagielski+ // Kludge to handle the fact that we might have gotten the root from the wrong stream. 973*b1cdbd2cSJim Jagielski+ // Calling MidPassSlotAt finds the right one. 974*b1cdbd2cSJim Jagielski+ if (psstrmNext && pslotRoot) 975*b1cdbd2cSJim Jagielski+ { 976*b1cdbd2cSJim Jagielski+ int islotRoot = pslotRoot->PosPassIndex(); 977*b1cdbd2cSJim Jagielski+ pslotRoot = psstrm->MidPassSlotAt(islotRoot, psstrmNext); 978*b1cdbd2cSJim Jagielski+ } 979*b1cdbd2cSJim Jagielski 980*b1cdbd2cSJim Jagielski InitMetrics(ptman, pslotRoot); 981*b1cdbd2cSJim Jagielski 982*b1cdbd2cSJim Jagielski for (size_t islot = 0; islot < m_vdislotAttLeaves.size(); islot++) 983*b1cdbd2cSJim Jagielski { 984*b1cdbd2cSJim Jagielski- GrSlotState * pslotLeaf = SlotAtOffset(psstrm, m_vdislotAttLeaves[islot]); 985*b1cdbd2cSJim Jagielski+ GrSlotState * pslotLeaf; 986*b1cdbd2cSJim Jagielski+ if (psstrmNext) 987*b1cdbd2cSJim Jagielski+ { 988*b1cdbd2cSJim Jagielski+ // Calculating a position in the middle of processing a pass. 989*b1cdbd2cSJim Jagielski+ pslotLeaf = psstrm->MidPassSlotAt(PosPassIndex() + m_vdislotAttLeaves[islot], 990*b1cdbd2cSJim Jagielski+ psstrmNext); 991*b1cdbd2cSJim Jagielski+ } 992*b1cdbd2cSJim Jagielski+ else 993*b1cdbd2cSJim Jagielski+ { 994*b1cdbd2cSJim Jagielski+ // Calculating the final position. 995*b1cdbd2cSJim Jagielski+ pslotLeaf = SlotAtOffset(psstrm, m_vdislotAttLeaves[islot]); 996*b1cdbd2cSJim Jagielski+ } 997*b1cdbd2cSJim Jagielski+ 998*b1cdbd2cSJim Jagielski if (pslotLeaf->AttachLevel() <= nLevel) 999*b1cdbd2cSJim Jagielski- pslotLeaf->CalcCompositeMetrics(ptman, psstrm, nLevel, fThorough); 1000*b1cdbd2cSJim Jagielski+ pslotLeaf->CalcCompositeMetrics(ptman, psstrm, psstrmNext, nLevel, fThorough); 1001*b1cdbd2cSJim Jagielski else 1002*b1cdbd2cSJim Jagielski // this slot will be ignored in the composite metrics 1003*b1cdbd2cSJim Jagielski pslotLeaf->ZapRootMetrics(); 1004*b1cdbd2cSJim Jagielski } 1005*b1cdbd2cSJim Jagielski- CalcRootMetrics(ptman, psstrm, nLevel); 1006*b1cdbd2cSJim Jagielski+ CalcRootMetrics(ptman, psstrm, psstrmNext, nLevel); 1007*b1cdbd2cSJim Jagielski 1008*b1cdbd2cSJim Jagielski m_nCompositeLevel = nLevel; 1009*b1cdbd2cSJim Jagielski } 1010*b1cdbd2cSJim Jagielski@@ -1129,25 +1150,33 @@ 1011*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 1012*b1cdbd2cSJim Jagielski Calculate the metrics for this node and all its leaf nodes. 1013*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1014*b1cdbd2cSJim Jagielski-void GrSlotState::CalcRootMetrics(GrTableManager * ptman, GrSlotStream * psstrm, int nLevel) 1015*b1cdbd2cSJim Jagielski+void GrSlotState::CalcRootMetrics(GrTableManager * /*ptman*/, GrSlotStream * psstrm, 1016*b1cdbd2cSJim Jagielski+ GrSlotStream * psstrmNext, int nLevel) 1017*b1cdbd2cSJim Jagielski { 1018*b1cdbd2cSJim Jagielski for (size_t idislot = 0; idislot < m_vdislotAttLeaves.size(); idislot++) 1019*b1cdbd2cSJim Jagielski { 1020*b1cdbd2cSJim Jagielski- GrSlotState * pslot = SlotAtOffset(psstrm, m_vdislotAttLeaves[idislot]); 1021*b1cdbd2cSJim Jagielski- if (pslot->AttachLevel() > nLevel) 1022*b1cdbd2cSJim Jagielski+ GrSlotState * pslotLeaf = SlotAtOffset(psstrm, m_vdislotAttLeaves[idislot]); 1023*b1cdbd2cSJim Jagielski+ // Kludge to handle the fact that we might have gotten the leaf from the wrong stream. 1024*b1cdbd2cSJim Jagielski+ // Calling MidPassSlotAt finds the right one. 1025*b1cdbd2cSJim Jagielski+ if (psstrmNext) 1026*b1cdbd2cSJim Jagielski+ { 1027*b1cdbd2cSJim Jagielski+ int islot = pslotLeaf->PosPassIndex(); 1028*b1cdbd2cSJim Jagielski+ pslotLeaf = psstrm->MidPassSlotAt(islot, psstrmNext); 1029*b1cdbd2cSJim Jagielski+ } 1030*b1cdbd2cSJim Jagielski+ if (pslotLeaf->AttachLevel() > nLevel) 1031*b1cdbd2cSJim Jagielski continue; 1032*b1cdbd2cSJim Jagielski 1033*b1cdbd2cSJim Jagielski- m_xsClusterXOffset = min(m_xsClusterXOffset, pslot->m_xsClusterXOffset); 1034*b1cdbd2cSJim Jagielski- if (!pslot->m_fIgnoreAdvance) 1035*b1cdbd2cSJim Jagielski+ m_xsClusterXOffset = min(m_xsClusterXOffset, pslotLeaf->m_xsClusterXOffset); 1036*b1cdbd2cSJim Jagielski+ if (!pslotLeaf->m_fIgnoreAdvance) 1037*b1cdbd2cSJim Jagielski { 1038*b1cdbd2cSJim Jagielski m_xsClusterAdv = max( 1039*b1cdbd2cSJim Jagielski m_xsClusterAdv, 1040*b1cdbd2cSJim Jagielski- pslot->m_xsClusterAdv + m_xsRootShiftX); 1041*b1cdbd2cSJim Jagielski+ pslotLeaf->m_xsClusterAdv + m_xsRootShiftX); 1042*b1cdbd2cSJim Jagielski } 1043*b1cdbd2cSJim Jagielski- m_xsClusterBbLeft = min(m_xsClusterBbLeft, pslot->m_xsClusterBbLeft); 1044*b1cdbd2cSJim Jagielski- m_xsClusterBbRight = max(m_xsClusterBbRight, pslot->m_xsClusterBbRight); 1045*b1cdbd2cSJim Jagielski- m_ysClusterBbTop = max(m_ysClusterBbTop, pslot->m_ysClusterBbTop); 1046*b1cdbd2cSJim Jagielski- m_ysClusterBbBottom = min(m_ysClusterBbBottom, pslot->m_ysClusterBbBottom); 1047*b1cdbd2cSJim Jagielski+ m_xsClusterBbLeft = min(m_xsClusterBbLeft, pslotLeaf->m_xsClusterBbLeft); 1048*b1cdbd2cSJim Jagielski+ m_xsClusterBbRight = max(m_xsClusterBbRight, pslotLeaf->m_xsClusterBbRight); 1049*b1cdbd2cSJim Jagielski+ m_ysClusterBbTop = max(m_ysClusterBbTop, pslotLeaf->m_ysClusterBbTop); 1050*b1cdbd2cSJim Jagielski+ m_ysClusterBbBottom = min(m_ysClusterBbBottom, pslotLeaf->m_ysClusterBbBottom); 1051*b1cdbd2cSJim Jagielski } 1052*b1cdbd2cSJim Jagielski } 1053*b1cdbd2cSJim Jagielski 1054*b1cdbd2cSJim Jagielski@@ -1263,7 +1292,7 @@ 1055*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 1056*b1cdbd2cSJim Jagielski Y-offsets of a single glyph relative to the previous advance position. 1057*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1058*b1cdbd2cSJim Jagielski-float GrSlotState::GlyphYOffset(GrSlotStream * psstrm) 1059*b1cdbd2cSJim Jagielski+float GrSlotState::GlyphYOffset(GrSlotStream * /*psstrm*/) 1060*b1cdbd2cSJim Jagielski { 1061*b1cdbd2cSJim Jagielski return m_ysOffsetY; 1062*b1cdbd2cSJim Jagielski } 1063*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrSlotState.h Wed Jan 28 04:01:29 2009 1064*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrSlotState.h Sat Aug 22 19:36:34 2009 1065*b1cdbd2cSJim Jagielski@@ -308,7 +308,11 @@ 1066*b1cdbd2cSJim Jagielski { 1067*b1cdbd2cSJim Jagielski return m_islotPosPass; 1068*b1cdbd2cSJim Jagielski } 1069*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 1070*b1cdbd2cSJim Jagielski+ void SetPosPassIndex(int islot, bool /*fInputToPosPass1*/) 1071*b1cdbd2cSJim Jagielski+#else 1072*b1cdbd2cSJim Jagielski void SetPosPassIndex(int islot, bool fInputToPosPass1) 1073*b1cdbd2cSJim Jagielski+#endif 1074*b1cdbd2cSJim Jagielski { 1075*b1cdbd2cSJim Jagielski // If we're resetting it, it should be to the same value as before: 1076*b1cdbd2cSJim Jagielski Assert(fInputToPosPass1 || m_islotPosPass == kNotYetSet || m_islotPosPass == islot); 1077*b1cdbd2cSJim Jagielski@@ -386,12 +390,12 @@ 1078*b1cdbd2cSJim Jagielski return (IsInitialLineBreak(chwLB) || IsFinalLineBreak(chwLB)); 1079*b1cdbd2cSJim Jagielski //return (m_chwGlyphID == chwLB); // TODO: remove 1080*b1cdbd2cSJim Jagielski } 1081*b1cdbd2cSJim Jagielski- bool IsInitialLineBreak(gid16 chwLB) 1082*b1cdbd2cSJim Jagielski+ bool IsInitialLineBreak(gid16 /*chwLB*/) 1083*b1cdbd2cSJim Jagielski { 1084*b1cdbd2cSJim Jagielski return (m_spsl == kspslLbInitial); 1085*b1cdbd2cSJim Jagielski //return (IsLineBreak(chwLB) && m_fInitialLB == true); // TODO: remove 1086*b1cdbd2cSJim Jagielski } 1087*b1cdbd2cSJim Jagielski- bool IsFinalLineBreak(gid16 chwLB) 1088*b1cdbd2cSJim Jagielski+ bool IsFinalLineBreak(gid16 /*chwLB*/) 1089*b1cdbd2cSJim Jagielski { 1090*b1cdbd2cSJim Jagielski return (m_spsl == kspslLbFinal); 1091*b1cdbd2cSJim Jagielski //return (IsLineBreak(chwLB) && m_fInitialLB == false); // TODO: remove 1092*b1cdbd2cSJim Jagielski@@ -475,7 +479,7 @@ 1093*b1cdbd2cSJim Jagielski return m_mAttachAtX; 1094*b1cdbd2cSJim Jagielski } 1095*b1cdbd2cSJim Jagielski 1096*b1cdbd2cSJim Jagielski- int AttachWithX(GrTableManager * ptman, GrSlotStream * psstrm) 1097*b1cdbd2cSJim Jagielski+ int AttachWithX(GrTableManager * /*ptman*/, GrSlotStream * /*psstrm*/) 1098*b1cdbd2cSJim Jagielski { 1099*b1cdbd2cSJim Jagielski if (m_mAttachAtX == kNotYetSet) 1100*b1cdbd2cSJim Jagielski { 1101*b1cdbd2cSJim Jagielski@@ -615,7 +619,7 @@ 1102*b1cdbd2cSJim Jagielski GrSlotStream * psstrmIn, GrSlotStream * psstrmOut, int islotThis); 1103*b1cdbd2cSJim Jagielski 1104*b1cdbd2cSJim Jagielski void CalcCompositeMetrics(GrTableManager * ptman, GrSlotStream * psstrm, 1105*b1cdbd2cSJim Jagielski- int nLevel, bool fThorough = false); 1106*b1cdbd2cSJim Jagielski+ GrSlotStream * psstrmNext, int nLevel, bool fThorough = false); 1107*b1cdbd2cSJim Jagielski 1108*b1cdbd2cSJim Jagielski void Position(GrTableManager * ptman, 1109*b1cdbd2cSJim Jagielski GrSlotStream * psstrmOut, int * pmXPos, int * pmYPos); 1110*b1cdbd2cSJim Jagielski@@ -646,7 +650,7 @@ 1111*b1cdbd2cSJim Jagielski { 1112*b1cdbd2cSJim Jagielski return ClusterBbLeft(psstrm) + xs; 1113*b1cdbd2cSJim Jagielski } 1114*b1cdbd2cSJim Jagielski- float ClusterRsb(GrSlotStream * psstrm, float xs) 1115*b1cdbd2cSJim Jagielski+ float ClusterRsb(GrSlotStream * /*psstrm*/, float xs) 1116*b1cdbd2cSJim Jagielski { 1117*b1cdbd2cSJim Jagielski return ClusterAdvWidthFrom(xs) - ClusterBbRightFrom(xs); 1118*b1cdbd2cSJim Jagielski } 1119*b1cdbd2cSJim Jagielski@@ -668,19 +672,19 @@ 1120*b1cdbd2cSJim Jagielski { 1121*b1cdbd2cSJim Jagielski return ClusterBbRightFrom(Base(psstrm)->ClusterRootOffset()); 1122*b1cdbd2cSJim Jagielski } 1123*b1cdbd2cSJim Jagielski- float ClusterBbTop(GrSlotStream * psstrm) 1124*b1cdbd2cSJim Jagielski+ float ClusterBbTop(GrSlotStream * /*psstrm*/) 1125*b1cdbd2cSJim Jagielski { 1126*b1cdbd2cSJim Jagielski return m_ysClusterBbTop; 1127*b1cdbd2cSJim Jagielski } 1128*b1cdbd2cSJim Jagielski- float ClusterBbBottom(GrSlotStream * psstrm) 1129*b1cdbd2cSJim Jagielski+ float ClusterBbBottom(GrSlotStream * /*psstrm*/) 1130*b1cdbd2cSJim Jagielski { 1131*b1cdbd2cSJim Jagielski return m_ysClusterBbBottom; 1132*b1cdbd2cSJim Jagielski } 1133*b1cdbd2cSJim Jagielski- float ClusterBbWidth(GrSlotStream * psstrm) 1134*b1cdbd2cSJim Jagielski+ float ClusterBbWidth(GrSlotStream * /*psstrm*/) 1135*b1cdbd2cSJim Jagielski { 1136*b1cdbd2cSJim Jagielski return m_xsClusterBbRight - m_xsClusterBbLeft + 1; 1137*b1cdbd2cSJim Jagielski } 1138*b1cdbd2cSJim Jagielski- float ClusterBbHeight(GrSlotStream * psstrm) 1139*b1cdbd2cSJim Jagielski+ float ClusterBbHeight(GrSlotStream * /*psstrm*/) 1140*b1cdbd2cSJim Jagielski { 1141*b1cdbd2cSJim Jagielski return m_ysClusterBbTop - m_ysClusterBbBottom + 1; 1142*b1cdbd2cSJim Jagielski } 1143*b1cdbd2cSJim Jagielski@@ -990,7 +994,8 @@ 1144*b1cdbd2cSJim Jagielski void InitMetrics(GrTableManager * ptman, GrSlotState * pslotRoot); 1145*b1cdbd2cSJim Jagielski void InitLeafMetrics(GrTableManager * ptman, GrSlotState * pslotRoot); 1146*b1cdbd2cSJim Jagielski void InitRootMetrics(GrTableManager * ptman); 1147*b1cdbd2cSJim Jagielski- void CalcRootMetrics(GrTableManager * ptman, GrSlotStream *, int nLevel); 1148*b1cdbd2cSJim Jagielski+ void CalcRootMetrics(GrTableManager * ptman, GrSlotStream * psstrm, 1149*b1cdbd2cSJim Jagielski+ GrSlotStream * psstrmNext, int nLevel); 1150*b1cdbd2cSJim Jagielski void AttachToRoot(GrTableManager * ptman, GrSlotStream *, GrSlotState * pslotNewRoot); 1151*b1cdbd2cSJim Jagielski void AttachLogUnits(GrTableManager * ptman, 1152*b1cdbd2cSJim Jagielski GrSlotState * pslotRoot, 1153*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrSlotStream.cpp Wed Feb 04 07:53:26 2009 1154*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrSlotStream.cpp Sat Aug 22 19:36:34 2009 1155*b1cdbd2cSJim Jagielski@@ -189,12 +189,16 @@ 1156*b1cdbd2cSJim Jagielski stream position when the rule is being run. 1157*b1cdbd2cSJim Jagielski 1158*b1cdbd2cSJim Jagielski @param dislot - how far back to peek before the write position 1159*b1cdbd2cSJim Jagielski- when the rule started; a negative number 1160*b1cdbd2cSJim Jagielski+ WHEN THE RULE STARTED; a negative number 1161*b1cdbd2cSJim Jagielski (NOTE: the current write position is irrelevant) 1162*b1cdbd2cSJim Jagielski @param fNullOkay - true if it's okay to return NULL in the situation where we're asking 1163*b1cdbd2cSJim Jagielski for something before the beginning of the stream 1164*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1165*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 1166*b1cdbd2cSJim Jagielski+GrSlotState * GrSlotStream::PeekBack(int dislot, bool /*fNullOkay*/) 1167*b1cdbd2cSJim Jagielski+#else 1168*b1cdbd2cSJim Jagielski GrSlotState * GrSlotStream::PeekBack(int dislot, bool fNullOkay) 1169*b1cdbd2cSJim Jagielski+#endif 1170*b1cdbd2cSJim Jagielski { 1171*b1cdbd2cSJim Jagielski Assert(dislot < 0); 1172*b1cdbd2cSJim Jagielski if (dislot < m_islotRuleStartWrite * -1) 1173*b1cdbd2cSJim Jagielski@@ -1104,6 +1108,7 @@ 1174*b1cdbd2cSJim Jagielski case kdircRLO: 1175*b1cdbd2cSJim Jagielski case kdircRLE: 1176*b1cdbd2cSJim Jagielski case kdircPdfR: 1177*b1cdbd2cSJim Jagielski+ case kdircRlb: 1178*b1cdbd2cSJim Jagielski return true; 1179*b1cdbd2cSJim Jagielski 1180*b1cdbd2cSJim Jagielski case kdircNeutral: 1181*b1cdbd2cSJim Jagielski@@ -1212,7 +1217,7 @@ 1182*b1cdbd2cSJim Jagielski return true; 1183*b1cdbd2cSJim Jagielski 1184*b1cdbd2cSJim Jagielski float xsWidth, xsVisWidth; 1185*b1cdbd2cSJim Jagielski- ptman->CalcPositionsUpTo(m_ipass, NULL, &xsWidth, &xsVisWidth); 1186*b1cdbd2cSJim Jagielski+ ptman->CalcPositionsUpTo(m_ipass, NULL, false, &xsWidth, &xsVisWidth); 1187*b1cdbd2cSJim Jagielski 1188*b1cdbd2cSJim Jagielski *pxsWidth = (fIgnoreTrailingWS || twsh == ktwshOnlyWs) ? xsVisWidth : xsWidth; 1189*b1cdbd2cSJim Jagielski return (*pxsWidth < xsSpaceAllotted); 1190*b1cdbd2cSJim Jagielski@@ -1322,7 +1327,7 @@ 1191*b1cdbd2cSJim Jagielski @param islotMin - first slot that is officially part of the segment (after initial LB) 1192*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1193*b1cdbd2cSJim Jagielski int GrSlotStream::MakeSegmentBreak(GrTableManager * ptman, 1194*b1cdbd2cSJim Jagielski- int islotPrevBreak, bool fInsertedLB, int islotStartTry, 1195*b1cdbd2cSJim Jagielski+ int /*islotPrevBreak*/, bool /*fInsertedLB*/, int islotStartTry, 1196*b1cdbd2cSJim Jagielski LineBrk lb, TrWsHandling twsh, int islotMin, 1197*b1cdbd2cSJim Jagielski LineBrk * plbNextToTry) 1198*b1cdbd2cSJim Jagielski { 1199*b1cdbd2cSJim Jagielski@@ -1576,7 +1581,11 @@ 1200*b1cdbd2cSJim Jagielski Return the break weight of the given slot, which should be a line-break. 1201*b1cdbd2cSJim Jagielski OBSOLETE?? 1202*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1203*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 1204*b1cdbd2cSJim Jagielski+LineBrk GrSlotStream::BreakWeightAt(gid16 /*chwLB*/, int islot) 1205*b1cdbd2cSJim Jagielski+#else 1206*b1cdbd2cSJim Jagielski LineBrk GrSlotStream::BreakWeightAt(gid16 chwLB, int islot) 1207*b1cdbd2cSJim Jagielski+#endif 1208*b1cdbd2cSJim Jagielski { 1209*b1cdbd2cSJim Jagielski GrSlotState * pslot = GetSlotAt(islot); 1210*b1cdbd2cSJim Jagielski Assert(pslot->IsLineBreak(chwLB)); 1211*b1cdbd2cSJim Jagielski@@ -1769,7 +1778,7 @@ 1212*b1cdbd2cSJim Jagielski @param fBackingUp - this chunk results in the stream position moving backwards, 1213*b1cdbd2cSJim Jagielski so clear anything we're backing over 1214*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1215*b1cdbd2cSJim Jagielski-void GrSlotStream::MapInputChunk(int islotInputMin, int islotOutputMin, int islotInputLim, 1216*b1cdbd2cSJim Jagielski+void GrSlotStream::MapInputChunk(int islotInputMin, int islotOutputMin, int /*islotInputLim*/, 1217*b1cdbd2cSJim Jagielski bool fSkipChunkStart, bool fBackingUp) 1218*b1cdbd2cSJim Jagielski { 1219*b1cdbd2cSJim Jagielski Assert(AssertValid()); 1220*b1cdbd2cSJim Jagielski@@ -1828,7 +1837,7 @@ 1221*b1cdbd2cSJim Jagielski @param fBackingUp - this chunk results in the stream position moving backwards, 1222*b1cdbd2cSJim Jagielski so clear anything we're backing over 1223*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1224*b1cdbd2cSJim Jagielski-void GrSlotStream::MapOutputChunk(int islotOutputMin, int islotInputMin, int islotOutputLim, 1225*b1cdbd2cSJim Jagielski+void GrSlotStream::MapOutputChunk(int islotOutputMin, int islotInputMin, int /*islotOutputLim*/, 1226*b1cdbd2cSJim Jagielski bool fSkipChunkStart, int cslotReprocess, bool fBackingUp) 1227*b1cdbd2cSJim Jagielski { 1228*b1cdbd2cSJim Jagielski Assert(AssertValid()); 1229*b1cdbd2cSJim Jagielski@@ -1863,7 +1872,11 @@ 1230*b1cdbd2cSJim Jagielski Ensure that the chunk maps for a pair of streams match properly. The recipient is 1231*b1cdbd2cSJim Jagielski the input stream. 1232*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1233*b1cdbd2cSJim Jagielski+#ifdef _DEBUG 1234*b1cdbd2cSJim Jagielski void GrSlotStream::AssertChunkMapsValid(GrSlotStream * psstrmOut) 1235*b1cdbd2cSJim Jagielski+#else 1236*b1cdbd2cSJim Jagielski+void GrSlotStream::AssertChunkMapsValid(GrSlotStream * ) 1237*b1cdbd2cSJim Jagielski+#endif 1238*b1cdbd2cSJim Jagielski { 1239*b1cdbd2cSJim Jagielski #ifdef _DEBUG 1240*b1cdbd2cSJim Jagielski GrSlotStream * psstrmIn = this; 1241*b1cdbd2cSJim Jagielski@@ -1915,7 +1924,11 @@ 1242*b1cdbd2cSJim Jagielski Ensure that corresponding items in the streams of a positioning pass have matching 1243*b1cdbd2cSJim Jagielski stream indices. The recipient is the output stream. 1244*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1245*b1cdbd2cSJim Jagielski+#ifdef _DEBUG 1246*b1cdbd2cSJim Jagielski void GrSlotStream::AssertStreamIndicesValid(GrSlotStream * psstrmIn) 1247*b1cdbd2cSJim Jagielski+#else 1248*b1cdbd2cSJim Jagielski+void GrSlotStream::AssertStreamIndicesValid(GrSlotStream * ) 1249*b1cdbd2cSJim Jagielski+#endif 1250*b1cdbd2cSJim Jagielski { 1251*b1cdbd2cSJim Jagielski #ifdef _DEBUG 1252*b1cdbd2cSJim Jagielski if (!GotIndexOffset()) 1253*b1cdbd2cSJim Jagielski@@ -1939,7 +1948,11 @@ 1254*b1cdbd2cSJim Jagielski in the output stream. (Currently the compiler ensures this by making it an error 1255*b1cdbd2cSJim Jagielski to write rules that don't do this.) 1256*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1257*b1cdbd2cSJim Jagielski+#ifdef _DEBUG 1258*b1cdbd2cSJim Jagielski void GrSlotStream::AssertAttachmentsInOutput(int islotMin, int islotLim) 1259*b1cdbd2cSJim Jagielski+#else 1260*b1cdbd2cSJim Jagielski+void GrSlotStream::AssertAttachmentsInOutput(int , int ) 1261*b1cdbd2cSJim Jagielski+#endif 1262*b1cdbd2cSJim Jagielski { 1263*b1cdbd2cSJim Jagielski #ifdef _DEBUG 1264*b1cdbd2cSJim Jagielski for (int islot = islotMin; islot < islotLim; islot++) 1265*b1cdbd2cSJim Jagielski@@ -2007,7 +2016,11 @@ 1266*b1cdbd2cSJim Jagielski Record the number of slots in the stream that are previous to the official start of the 1267*b1cdbd2cSJim Jagielski segment. 1268*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1269*b1cdbd2cSJim Jagielski+#ifdef _DEBUG 1270*b1cdbd2cSJim Jagielski void GrSlotStream::CalcIndexOffset(GrTableManager * ptman) 1271*b1cdbd2cSJim Jagielski+#else 1272*b1cdbd2cSJim Jagielski+void GrSlotStream::CalcIndexOffset(GrTableManager * ) 1273*b1cdbd2cSJim Jagielski+#endif 1274*b1cdbd2cSJim Jagielski { 1275*b1cdbd2cSJim Jagielski if (GotIndexOffset()) 1276*b1cdbd2cSJim Jagielski return; // already figured it 1277*b1cdbd2cSJim Jagielski@@ -2203,6 +2212,21 @@ 1278*b1cdbd2cSJim Jagielski } 1279*b1cdbd2cSJim Jagielski 1280*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 1281*b1cdbd2cSJim Jagielski+ In the middle of running a pass, return the given slot to use in processing. 1282*b1cdbd2cSJim Jagielski+ Read it from the reprocess buffer if appropriate, or for slots previous to the current 1283*b1cdbd2cSJim Jagielski+ position, read from the output stream (psstrmNext). 1284*b1cdbd2cSJim Jagielski+ 1285*b1cdbd2cSJim Jagielski+ psstrmNext may be NULL when processing is complete, therefore we only have one stream to 1286*b1cdbd2cSJim Jagielski+ deal with. 1287*b1cdbd2cSJim Jagielski+----------------------------------------------------------------------------------------------*/ 1288*b1cdbd2cSJim Jagielski+GrSlotState * GrSlotStream::MidPassSlotAt(int islot, GrSlotStream * psstrmNext) 1289*b1cdbd2cSJim Jagielski+{ 1290*b1cdbd2cSJim Jagielski+ int islotInput = islot - ReadPosForNextGet() + 1; // +1 because RuleInputSlot takes 0 to mean the previously read slot 1291*b1cdbd2cSJim Jagielski+ GrSlotState * pslot = RuleInputSlot(islotInput, psstrmNext); 1292*b1cdbd2cSJim Jagielski+ return pslot; 1293*b1cdbd2cSJim Jagielski+} 1294*b1cdbd2cSJim Jagielski+ 1295*b1cdbd2cSJim Jagielski+/*---------------------------------------------------------------------------------------------- 1296*b1cdbd2cSJim Jagielski Return the "current" input item from the rule's perspective, ie, the last slot read. 1297*b1cdbd2cSJim Jagielski So dislotOffset = 0 means not the slot at the read position but one slot earlier. 1298*b1cdbd2cSJim Jagielski 1299*b1cdbd2cSJim Jagielski@@ -2214,7 +2238,6 @@ 1300*b1cdbd2cSJim Jagielski @param fNullOkay - true if it's okay to return NULL in the situation where we're asking 1301*b1cdbd2cSJim Jagielski for something before the beginning of the stream 1302*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1303*b1cdbd2cSJim Jagielski- 1304*b1cdbd2cSJim Jagielski GrSlotState * GrSlotStream::RuleInputSlot(int dislotOffset, GrSlotStream * psstrmOutput, 1305*b1cdbd2cSJim Jagielski bool fNullOkay) 1306*b1cdbd2cSJim Jagielski { 1307*b1cdbd2cSJim Jagielski@@ -2244,8 +2267,10 @@ 1308*b1cdbd2cSJim Jagielski 1309*b1cdbd2cSJim Jagielski if (cslotOffsetBack >= cslotPostReproc + cslotValidReproc) 1310*b1cdbd2cSJim Jagielski { 1311*b1cdbd2cSJim Jagielski- // Read from the output stream. 1312*b1cdbd2cSJim Jagielski- int dislotTmp = dislotOffset - 1 + cslotPostReproc + cslotValidReproc; 1313*b1cdbd2cSJim Jagielski+ // Read from the output stream. (Remember that PeekBack works relative to 1314*b1cdbd2cSJim Jagielski+ // the rule-start write position, not the current write position.) 1315*b1cdbd2cSJim Jagielski+ int dislotTmp = dislotOffset - 1 + cslotPostReproc 1316*b1cdbd2cSJim Jagielski+ + cslotValidReproc - SlotsToReprocess(); 1317*b1cdbd2cSJim Jagielski Assert(dislotTmp < 0); 1318*b1cdbd2cSJim Jagielski return psstrmOutput->PeekBack(dislotTmp); 1319*b1cdbd2cSJim Jagielski } 1320*b1cdbd2cSJim Jagielski@@ -2253,7 +2278,7 @@ 1321*b1cdbd2cSJim Jagielski { 1322*b1cdbd2cSJim Jagielski if (m_islotReprocPos > -1) 1323*b1cdbd2cSJim Jagielski { 1324*b1cdbd2cSJim Jagielski- // Current read pos is inside reprocess buffer. 1325*b1cdbd2cSJim Jagielski+ // Current read pos could be inside reprocess buffer. 1326*b1cdbd2cSJim Jagielski Assert(cslotPostReproc == 0); 1327*b1cdbd2cSJim Jagielski int islotStartReadReprocBuf = m_vpslotReproc.size() - cslotValidReproc; 1328*b1cdbd2cSJim Jagielski Assert(islotStartReadReprocBuf >= 0); 1329*b1cdbd2cSJim Jagielski@@ -2342,9 +2367,10 @@ 1330*b1cdbd2cSJim Jagielski else if (pslotAfter) 1331*b1cdbd2cSJim Jagielski pslot->Associate(pslotAfter); 1332*b1cdbd2cSJim Jagielski else 1333*b1cdbd2cSJim Jagielski+ { 1334*b1cdbd2cSJim Jagielski // Weird, but can happen with an empty segment. 1335*b1cdbd2cSJim Jagielski Warn("No assocations"); 1336*b1cdbd2cSJim Jagielski- 1337*b1cdbd2cSJim Jagielski+ } 1338*b1cdbd2cSJim Jagielski // Assert(pslot->m_vpslotAssoc.Size() > 0); 1339*b1cdbd2cSJim Jagielski pslot->m_fNeutralAssocs = true; 1340*b1cdbd2cSJim Jagielski } 1341*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrSlotStream.h Thu Jan 22 00:36:42 2009 1342*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrSlotStream.h Sat Aug 22 19:36:34 2009 1343*b1cdbd2cSJim Jagielski@@ -107,7 +107,7 @@ 1344*b1cdbd2cSJim Jagielski ReleaseSlots(0, m_vpslot.size()); 1345*b1cdbd2cSJim Jagielski } 1346*b1cdbd2cSJim Jagielski 1347*b1cdbd2cSJim Jagielski- void ReleaseSlots(int islotMin, int islotLim) 1348*b1cdbd2cSJim Jagielski+ void ReleaseSlots(int /*islotMin*/, int /*islotLim*/) 1349*b1cdbd2cSJim Jagielski { 1350*b1cdbd2cSJim Jagielski // A slot stream is responsible for deleting the slot states that it created, 1351*b1cdbd2cSJim Jagielski // that is, the ones whose modified tag equals this stream's pass index. 1352*b1cdbd2cSJim Jagielski@@ -182,6 +182,7 @@ 1353*b1cdbd2cSJim Jagielski return Peek(islot - ReadPosForNextGet()); 1354*b1cdbd2cSJim Jagielski } 1355*b1cdbd2cSJim Jagielski 1356*b1cdbd2cSJim Jagielski+ // Return the functional read position, taking into account the reprocess buffer. 1357*b1cdbd2cSJim Jagielski int ReadPosForNextGet() 1358*b1cdbd2cSJim Jagielski { 1359*b1cdbd2cSJim Jagielski return ReadPos() - SlotsToReprocess(); 1360*b1cdbd2cSJim Jagielski@@ -260,12 +261,16 @@ 1361*b1cdbd2cSJim Jagielski 1362*b1cdbd2cSJim Jagielski void MarkFullyWritten(); 1363*b1cdbd2cSJim Jagielski 1364*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 1365*b1cdbd2cSJim Jagielski+ void SetSegMin(int islot, bool /*fAdjusting*/ = false) 1366*b1cdbd2cSJim Jagielski+#else 1367*b1cdbd2cSJim Jagielski void SetSegMin(int islot, bool fAdjusting = false) 1368*b1cdbd2cSJim Jagielski+#endif 1369*b1cdbd2cSJim Jagielski { 1370*b1cdbd2cSJim Jagielski Assert(fAdjusting || m_islotSegMin == -1 || m_islotSegMin == islot); 1371*b1cdbd2cSJim Jagielski m_islotSegMin = islot; 1372*b1cdbd2cSJim Jagielski } 1373*b1cdbd2cSJim Jagielski- void SetSegMinToWritePos(bool fMod = true) 1374*b1cdbd2cSJim Jagielski+ void SetSegMinToWritePos(bool /*fMod*/ = true) 1375*b1cdbd2cSJim Jagielski { 1376*b1cdbd2cSJim Jagielski if (m_islotSegMin == -1) 1377*b1cdbd2cSJim Jagielski m_islotSegMin = m_islotWritePos; 1378*b1cdbd2cSJim Jagielski@@ -456,6 +461,7 @@ 1379*b1cdbd2cSJim Jagielski } 1380*b1cdbd2cSJim Jagielski } 1381*b1cdbd2cSJim Jagielski 1382*b1cdbd2cSJim Jagielski+ GrSlotState * MidPassSlotAt(int islot, GrSlotStream * psstrmNext = NULL); 1383*b1cdbd2cSJim Jagielski GrSlotState * RuleInputSlot(int dislot = 0, GrSlotStream * psstrmOut = NULL, 1384*b1cdbd2cSJim Jagielski bool fNullOkay = false); 1385*b1cdbd2cSJim Jagielski GrSlotState * RuleOutputSlot(int dislot = 0); 1386*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrTableManager.cpp Wed Jan 28 04:01:29 2009 1387*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrTableManager.cpp Sat Aug 22 19:36:34 2009 1388*b1cdbd2cSJim Jagielski@@ -25,8 +25,8 @@ 1389*b1cdbd2cSJim Jagielski DEFINE_THIS_FILE 1390*b1cdbd2cSJim Jagielski #ifndef _WIN32 1391*b1cdbd2cSJim Jagielski #include <stdlib.h> 1392*b1cdbd2cSJim Jagielski-#include <math.h> 1393*b1cdbd2cSJim Jagielski #endif 1394*b1cdbd2cSJim Jagielski+#include <math.h> 1395*b1cdbd2cSJim Jagielski 1396*b1cdbd2cSJim Jagielski //:>******************************************************************************************** 1397*b1cdbd2cSJim Jagielski //:> Forward declarations 1398*b1cdbd2cSJim Jagielski@@ -572,7 +572,7 @@ 1399*b1cdbd2cSJim Jagielski else 1400*b1cdbd2cSJim Jagielski { 1401*b1cdbd2cSJim Jagielski Assert(!m_engst.m_fInsertedLB); 1402*b1cdbd2cSJim Jagielski- Assert(islotUnderBreak == -1 || m_engst.m_fFinalLB); 1403*b1cdbd2cSJim Jagielski+ //Assert(islotUnderBreak == -1 || m_engst.m_fFinalLB); -- no, ExtendGlyphIDOutput clearly sets islotUnderBreak regardless 1404*b1cdbd2cSJim Jagielski } 1405*b1cdbd2cSJim Jagielski int islotTmp = OutputStream(m_cpass - 1)->WritePos(); 1406*b1cdbd2cSJim Jagielski GrSlotState * pslotTmp; 1407*b1cdbd2cSJim Jagielski@@ -931,7 +931,7 @@ 1408*b1cdbd2cSJim Jagielski @param plbFound - kind of line-break created 1409*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1410*b1cdbd2cSJim Jagielski bool GrTableManager::Backtrack(int * pislotPrevBreak, 1411*b1cdbd2cSJim Jagielski- LineBrk * plbMin, LineBrk lbMax, TrWsHandling twsh, bool fMoreText, 1412*b1cdbd2cSJim Jagielski+ LineBrk * plbMin, LineBrk lbMax, TrWsHandling twsh, bool /*fMoreText*/, 1413*b1cdbd2cSJim Jagielski int ichwCallerBtLim, bool fEndLine, 1414*b1cdbd2cSJim Jagielski LineBrk * plbFound) 1415*b1cdbd2cSJim Jagielski { 1416*b1cdbd2cSJim Jagielski@@ -1343,7 +1343,7 @@ 1417*b1cdbd2cSJim Jagielski Calculate the associations, and record the output slots in the segment. 1418*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1419*b1cdbd2cSJim Jagielski void GrTableManager::RecordAssocsAndOutput(Font * pfont, 1420*b1cdbd2cSJim Jagielski- Segment * pseg, bool fWidthIsCharCount, 1421*b1cdbd2cSJim Jagielski+ Segment * pseg, bool /*fWidthIsCharCount*/, 1422*b1cdbd2cSJim Jagielski TrWsHandling twsh, bool fParaRtl, int nDirDepth) 1423*b1cdbd2cSJim Jagielski { 1424*b1cdbd2cSJim Jagielski int cchwUnderlying = pseg->stopCharacter() - pseg->startCharacter(); 1425*b1cdbd2cSJim Jagielski@@ -1362,7 +1362,7 @@ 1426*b1cdbd2cSJim Jagielski #endif // OLD_TEST_STUFF 1427*b1cdbd2cSJim Jagielski 1428*b1cdbd2cSJim Jagielski // Make sure the final positions are set for every glyph. 1429*b1cdbd2cSJim Jagielski- CalcPositionsUpTo(m_cpass-1, reinterpret_cast<GrSlotState *>(NULL), 1430*b1cdbd2cSJim Jagielski+ CalcPositionsUpTo(m_cpass-1, reinterpret_cast<GrSlotState *>(NULL), false, 1431*b1cdbd2cSJim Jagielski &xsTotalWidth, &xsVisWidth); 1432*b1cdbd2cSJim Jagielski pseg->SetWidths(xsVisWidth, xsTotalWidth); 1433*b1cdbd2cSJim Jagielski 1434*b1cdbd2cSJim Jagielski@@ -1377,7 +1377,7 @@ 1435*b1cdbd2cSJim Jagielski Calculate the underlying-to-surface associations and ligature mappings. 1436*b1cdbd2cSJim Jagielski Assumes the arrays have been properly initialized. 1437*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1438*b1cdbd2cSJim Jagielski-void GrTableManager::CalculateAssociations(Segment * pseg, int csloutSurface) 1439*b1cdbd2cSJim Jagielski+void GrTableManager::CalculateAssociations(Segment * pseg, int /*csloutSurface*/) 1440*b1cdbd2cSJim Jagielski { 1441*b1cdbd2cSJim Jagielski GrSlotStream * psstrmFinal = OutputStream(m_cpass-1); 1442*b1cdbd2cSJim Jagielski 1443*b1cdbd2cSJim Jagielski@@ -2350,18 +2350,20 @@ 1444*b1cdbd2cSJim Jagielski final pass, but it could be another if positions are 1445*b1cdbd2cSJim Jagielski requested by the rules themselves 1446*b1cdbd2cSJim Jagielski @param pslotLast - last slot that needs to be positioned, or NULL 1447*b1cdbd2cSJim Jagielski+ @param fMidPass - calculating the position of some slot in the middle of the pass 1448*b1cdbd2cSJim Jagielski @param pxsWidth - return the total width used so far 1449*b1cdbd2cSJim Jagielski @param psxVisibleWidth - return the visible width so far 1450*b1cdbd2cSJim Jagielski 1451*b1cdbd2cSJim Jagielski MOVE to EngineState 1452*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1453*b1cdbd2cSJim Jagielski-void GrTableManager::CalcPositionsUpTo(int ipass, GrSlotState * pslotLast, 1454*b1cdbd2cSJim Jagielski+void GrTableManager::CalcPositionsUpTo(int ipass, GrSlotState * pslotLast, bool fMidPass, 1455*b1cdbd2cSJim Jagielski float * pxsWidth, float * pxsVisibleWidth) 1456*b1cdbd2cSJim Jagielski { 1457*b1cdbd2cSJim Jagielski Assert(ipass >= m_ipassPos1 - 1); 1458*b1cdbd2cSJim Jagielski 1459*b1cdbd2cSJim Jagielski int isstrm = ipass; 1460*b1cdbd2cSJim Jagielski GrSlotStream * psstrm = OutputStream(isstrm); 1461*b1cdbd2cSJim Jagielski+ GrSlotStream * psstrmNext = (isstrm >= m_cpass - 1) ? NULL : OutputStream(isstrm + 1); 1462*b1cdbd2cSJim Jagielski Assert(psstrm->GotIndexOffset()); 1463*b1cdbd2cSJim Jagielski if (psstrm->WritePos() <= psstrm->IndexOffset()) 1464*b1cdbd2cSJim Jagielski { 1465*b1cdbd2cSJim Jagielski@@ -2399,7 +2401,9 @@ 1466*b1cdbd2cSJim Jagielski // to be later in the stream than the last actual slot passed in. 1467*b1cdbd2cSJim Jagielski if (!psstrm->HasSlotAtPosPassIndex(pslotLast->AttachRootPosPassIndex())) 1468*b1cdbd2cSJim Jagielski return; 1469*b1cdbd2cSJim Jagielski- GrSlotState * pslotLastBase = pslotLast->Base(psstrm); 1470*b1cdbd2cSJim Jagielski+ GrSlotState * pslotLastBase = (fMidPass && pslotLast->PosPassIndex() < psstrm->WritePos()) 1471*b1cdbd2cSJim Jagielski+ ? pslotLast->Base(psstrmNext) 1472*b1cdbd2cSJim Jagielski+ : pslotLast->Base(psstrm); 1473*b1cdbd2cSJim Jagielski 1474*b1cdbd2cSJim Jagielski if (ipass == m_cpass - 1 && m_engst.m_islotPosNext > -1) 1475*b1cdbd2cSJim Jagielski { 1476*b1cdbd2cSJim Jagielski@@ -2428,6 +2432,7 @@ 1477*b1cdbd2cSJim Jagielski } 1478*b1cdbd2cSJim Jagielski 1479*b1cdbd2cSJim Jagielski std::vector<GrSlotState *> vpslotAttached; 1480*b1cdbd2cSJim Jagielski+ std::vector<GrSlotStream *> vpsstrmAttached; 1481*b1cdbd2cSJim Jagielski 1482*b1cdbd2cSJim Jagielski bool fRtl = RightToLeft(); 1483*b1cdbd2cSJim Jagielski 1484*b1cdbd2cSJim Jagielski@@ -2435,13 +2440,24 @@ 1485*b1cdbd2cSJim Jagielski { 1486*b1cdbd2cSJim Jagielski Assert(islot < psstrm->SlotsPresent()); 1487*b1cdbd2cSJim Jagielski 1488*b1cdbd2cSJim Jagielski- pslot = (isstrm == ipass) ? psstrm->SlotAt(islot) : psstrm->OutputSlotAt(islot); 1489*b1cdbd2cSJim Jagielski+ GrSlotStream * psstrmThis = psstrm; 1490*b1cdbd2cSJim Jagielski+ if (fMidPass && islot < psstrm->WritePos()) 1491*b1cdbd2cSJim Jagielski+ { 1492*b1cdbd2cSJim Jagielski+ pslot = psstrm->MidPassSlotAt(islot, psstrmNext); 1493*b1cdbd2cSJim Jagielski+ psstrmThis = psstrmNext; 1494*b1cdbd2cSJim Jagielski+ } 1495*b1cdbd2cSJim Jagielski+ else 1496*b1cdbd2cSJim Jagielski+ { 1497*b1cdbd2cSJim Jagielski+ //pslot = (isstrm == ipass) ? psstrm->SlotAt(islot) : psstrm->OutputSlotAt(islot); 1498*b1cdbd2cSJim Jagielski+ pslot = psstrm->SlotAt(islot); 1499*b1cdbd2cSJim Jagielski+ } 1500*b1cdbd2cSJim Jagielski 1501*b1cdbd2cSJim Jagielski if (!pslot->IsBase()) 1502*b1cdbd2cSJim Jagielski { 1503*b1cdbd2cSJim Jagielski // This slot is attached to another; it will be positioned strictly 1504*b1cdbd2cSJim Jagielski // relative to that one. This happens in the loop below. 1505*b1cdbd2cSJim Jagielski vpslotAttached.push_back(pslot); 1506*b1cdbd2cSJim Jagielski+ vpsstrmAttached.push_back(psstrmThis); 1507*b1cdbd2cSJim Jagielski } 1508*b1cdbd2cSJim Jagielski else 1509*b1cdbd2cSJim Jagielski { 1510*b1cdbd2cSJim Jagielski@@ -2455,7 +2471,7 @@ 1511*b1cdbd2cSJim Jagielski } 1512*b1cdbd2cSJim Jagielski 1513*b1cdbd2cSJim Jagielski // Make sure the metrics are the complete ones. 1514*b1cdbd2cSJim Jagielski- pslot->CalcCompositeMetrics(this, psstrm, kPosInfinity, true); 1515*b1cdbd2cSJim Jagielski+ pslot->CalcCompositeMetrics(this, psstrm, psstrmNext, kPosInfinity, true); 1516*b1cdbd2cSJim Jagielski 1517*b1cdbd2cSJim Jagielski float xsInc = pslot->GlyphXOffset(psstrm, fakeItalicRatio); 1518*b1cdbd2cSJim Jagielski float ysInc = pslot->GlyphYOffset(psstrm); 1519*b1cdbd2cSJim Jagielski@@ -2514,8 +2530,9 @@ 1520*b1cdbd2cSJim Jagielski 1521*b1cdbd2cSJim Jagielski for (size_t ipslot = 0; ipslot < vpslotAttached.size(); ipslot++) 1522*b1cdbd2cSJim Jagielski { 1523*b1cdbd2cSJim Jagielski- GrSlotState * pslot = vpslotAttached[ipslot]; 1524*b1cdbd2cSJim Jagielski- GrSlotState * pslotBase = pslot->Base(psstrm); 1525*b1cdbd2cSJim Jagielski+ GrSlotState * pslotAtt = vpslotAttached[ipslot]; 1526*b1cdbd2cSJim Jagielski+ GrSlotStream * psstrmAtt = vpsstrmAttached[ipslot]; 1527*b1cdbd2cSJim Jagielski+ GrSlotState * pslotBase = pslotAtt->Base(psstrmAtt); 1528*b1cdbd2cSJim Jagielski if (pslotBase->XPosition() == kNegInfinity || pslotBase->YPosition() == kNegInfinity) 1529*b1cdbd2cSJim Jagielski { 1530*b1cdbd2cSJim Jagielski Assert(false); 1531*b1cdbd2cSJim Jagielski@@ -2523,10 +2540,10 @@ 1532*b1cdbd2cSJim Jagielski } 1533*b1cdbd2cSJim Jagielski float xsCluster = pslotBase->XPosition() - pslotBase->GlyphXOffset(psstrm, fakeItalicRatio); 1534*b1cdbd2cSJim Jagielski float ysCluster = pslotBase->YPosition() - pslotBase->GlyphYOffset(psstrm); 1535*b1cdbd2cSJim Jagielski- float xsInc = pslot->GlyphXOffset(psstrm, fakeItalicRatio); 1536*b1cdbd2cSJim Jagielski- float ysInc = pslot->GlyphYOffset(psstrm); 1537*b1cdbd2cSJim Jagielski- pslot->SetXPos(xsCluster + xsInc); 1538*b1cdbd2cSJim Jagielski- pslot->SetYPos(ysCluster + ysInc); 1539*b1cdbd2cSJim Jagielski+ float xsInc = pslotAtt->GlyphXOffset(psstrm, fakeItalicRatio); 1540*b1cdbd2cSJim Jagielski+ float ysInc = pslotAtt->GlyphYOffset(psstrm); 1541*b1cdbd2cSJim Jagielski+ pslotAtt->SetXPos(xsCluster + xsInc); 1542*b1cdbd2cSJim Jagielski+ pslotAtt->SetYPos(ysCluster + ysInc); 1543*b1cdbd2cSJim Jagielski 1544*b1cdbd2cSJim Jagielski // My theory is that we don't need to adjust *pxsWidth here, because the width of 1545*b1cdbd2cSJim Jagielski // any non-base slots should be factored into the advance width of their cluster 1546*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/GrTableManager.h Wed Jan 28 04:01:29 2009 1547*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrTableManager.h Sat Aug 22 19:36:35 2009 1548*b1cdbd2cSJim Jagielski@@ -442,7 +442,7 @@ 1549*b1cdbd2cSJim Jagielski int LogToEmUnits(float xys); 1550*b1cdbd2cSJim Jagielski bool GPointToXY(gid16 chwGlyphID, int nGPoint, float * xs, float * ys); 1551*b1cdbd2cSJim Jagielski 1552*b1cdbd2cSJim Jagielski- void CalcPositionsUpTo(int ipass, GrSlotState * pslotLast, 1553*b1cdbd2cSJim Jagielski+ void CalcPositionsUpTo(int ipass, GrSlotState * pslotLast, bool fMidPass, 1554*b1cdbd2cSJim Jagielski float * pxsWidth, float * pxsVisibleWidth); 1555*b1cdbd2cSJim Jagielski 1556*b1cdbd2cSJim Jagielski void InitPosCache() 1557*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/Platform.cpp Thu Jan 22 00:36:42 2009 1558*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/Platform.cpp Sat Aug 22 19:36:35 2009 1559*b1cdbd2cSJim Jagielski@@ -103,7 +103,7 @@ 1560*b1cdbd2cSJim Jagielski { 1561*b1cdbd2cSJim Jagielski // assumes NULL terminated strings 1562*b1cdbd2cSJim Jagielski const utf16 *start = s; 1563*b1cdbd2cSJim Jagielski- for (; *s; ++s); 1564*b1cdbd2cSJim Jagielski+ for (; *s; ++s) {}; 1565*b1cdbd2cSJim Jagielski 1566*b1cdbd2cSJim Jagielski return s - start; 1567*b1cdbd2cSJim Jagielski } 1568*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/Segment.cpp Thu Aug 21 16:24:32 2008 1569*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/Segment.cpp Sat Aug 22 19:36:35 2009 1570*b1cdbd2cSJim Jagielski@@ -1178,7 +1178,7 @@ 1571*b1cdbd2cSJim Jagielski part of the segment. 1572*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1573*b1cdbd2cSJim Jagielski float Segment::getRangeWidth(int ichMin, int ichLim, 1574*b1cdbd2cSJim Jagielski- bool fStartLine, bool fEndLine, bool fSkipSpace) 1575*b1cdbd2cSJim Jagielski+ bool /*fStartLine*/, bool /*fEndLine*/, bool fSkipSpace) 1576*b1cdbd2cSJim Jagielski { 1577*b1cdbd2cSJim Jagielski if (m_dxsWidth < 0) 1578*b1cdbd2cSJim Jagielski { 1579*b1cdbd2cSJim Jagielski@@ -1549,7 +1549,11 @@ 1580*b1cdbd2cSJim Jagielski void Segment::SetUpOutputArrays(Font * pfont, GrTableManager * ptman, 1581*b1cdbd2cSJim Jagielski GrSlotStream * psstrmFinal, 1582*b1cdbd2cSJim Jagielski int cchwInThisSeg, int csloutSurface, gid16 chwLB, 1583*b1cdbd2cSJim Jagielski+#ifdef NDEBUG 1584*b1cdbd2cSJim Jagielski+ TrWsHandling twsh, bool fParaRtl, int nDirDepth, bool /*fEmpty*/) 1585*b1cdbd2cSJim Jagielski+#else 1586*b1cdbd2cSJim Jagielski TrWsHandling twsh, bool fParaRtl, int nDirDepth, bool fEmpty) 1587*b1cdbd2cSJim Jagielski+#endif 1588*b1cdbd2cSJim Jagielski { 1589*b1cdbd2cSJim Jagielski m_mFontEmUnits = EngineImpl()->GetFontEmUnits(); 1590*b1cdbd2cSJim Jagielski 1591*b1cdbd2cSJim Jagielski@@ -1725,7 +1729,7 @@ 1592*b1cdbd2cSJim Jagielski Set up the data structures that represent the actual rendered glyphs for the new segment. 1593*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1594*b1cdbd2cSJim Jagielski void Segment::SetUpGlyphInfo(GrTableManager * ptman, GrSlotStream * psstrmFinal, 1595*b1cdbd2cSJim Jagielski- gid16 chwLB, int nDirDepth, int islotMin, int cslot) 1596*b1cdbd2cSJim Jagielski+ gid16 chwLB, int /*nDirDepth*/, int islotMin, int cslot) 1597*b1cdbd2cSJim Jagielski { 1598*b1cdbd2cSJim Jagielski //int paraDirLevel = (ptman->State()->ParaRightToLeft()) ? 1 : 0; 1599*b1cdbd2cSJim Jagielski 1600*b1cdbd2cSJim Jagielski@@ -1751,7 +1755,7 @@ 1601*b1cdbd2cSJim Jagielski 1602*b1cdbd2cSJim Jagielski m_isloutGinf0 = -1; 1603*b1cdbd2cSJim Jagielski int iginf = 0; 1604*b1cdbd2cSJim Jagielski- for (int islot = islotMin; islot < cslot; islot++) 1605*b1cdbd2cSJim Jagielski+ for (islot = islotMin; islot < cslot; islot++) 1606*b1cdbd2cSJim Jagielski { 1607*b1cdbd2cSJim Jagielski GrSlotState * pslot = psstrmFinal->SlotAt(islot); 1608*b1cdbd2cSJim Jagielski 1609*b1cdbd2cSJim Jagielski@@ -2160,7 +2164,7 @@ 1610*b1cdbd2cSJim Jagielski @param ichwUnder - character index relative to the official beginning of the segment 1611*b1cdbd2cSJim Jagielski @param islot - processed glyph it maps to 1612*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1613*b1cdbd2cSJim Jagielski-void Segment::MarkSlotInPrevSeg(int ichwUnder, int islot) 1614*b1cdbd2cSJim Jagielski+void Segment::MarkSlotInPrevSeg(int ichwUnder, int /*islot*/) 1615*b1cdbd2cSJim Jagielski { 1616*b1cdbd2cSJim Jagielski if (ichwUnder >= m_ichwAssocsMin) 1617*b1cdbd2cSJim Jagielski m_prgisloutBefore[ichwUnder - m_ichwAssocsMin] = kNegInfinity; 1618*b1cdbd2cSJim Jagielski@@ -2174,7 +2178,7 @@ 1619*b1cdbd2cSJim Jagielski @param ichwUnder - character index relative to the official beginning of the segment 1620*b1cdbd2cSJim Jagielski @param islot - processed glyph it maps to 1621*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1622*b1cdbd2cSJim Jagielski-void Segment::MarkSlotInNextSeg(int ichwUnder, int islot) 1623*b1cdbd2cSJim Jagielski+void Segment::MarkSlotInNextSeg(int ichwUnder, int /*islot*/) 1624*b1cdbd2cSJim Jagielski { 1625*b1cdbd2cSJim Jagielski if (ichwUnder < m_ichwAssocsLim) 1626*b1cdbd2cSJim Jagielski m_prgisloutAfter[ichwUnder - m_ichwAssocsMin] = kPosInfinity; 1627*b1cdbd2cSJim Jagielski@@ -2351,7 +2355,7 @@ 1628*b1cdbd2cSJim Jagielski @param pfAfter - return true if they clicked on trailing side; possibly NULL 1629*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1630*b1cdbd2cSJim Jagielski int Segment::LogicalSurfaceToUnderlying(int islout, float xsOffset, float ysClick, 1631*b1cdbd2cSJim Jagielski- float dxsGlyphWidth, float dysGlyphHeight, bool * pfAfter) 1632*b1cdbd2cSJim Jagielski+ float dxsGlyphWidth, float /*dysGlyphHeight*/, bool * pfAfter) 1633*b1cdbd2cSJim Jagielski { 1634*b1cdbd2cSJim Jagielski Assert(islout >= 0); 1635*b1cdbd2cSJim Jagielski Assert(islout < m_cslout); 1636*b1cdbd2cSJim Jagielski@@ -2529,31 +2533,31 @@ 1637*b1cdbd2cSJim Jagielski else if (fBefore) 1638*b1cdbd2cSJim Jagielski { 1639*b1cdbd2cSJim Jagielski int isloutRet; 1640*b1cdbd2cSJim Jagielski- int ichw = ichwSegOffset; 1641*b1cdbd2cSJim Jagielski+ int ichwTemp = ichwSegOffset; 1642*b1cdbd2cSJim Jagielski // If no association has been made, loop forward to the next slot 1643*b1cdbd2cSJim Jagielski // we are before. As a last resort, answer kPosInfinity, meaning we 1644*b1cdbd2cSJim Jagielski // aren't before anything. 1645*b1cdbd2cSJim Jagielski do 1646*b1cdbd2cSJim Jagielski { 1647*b1cdbd2cSJim Jagielski- isloutRet = m_prgisloutBefore[ichw - m_ichwAssocsMin]; 1648*b1cdbd2cSJim Jagielski- do { ++ichw; } 1649*b1cdbd2cSJim Jagielski- while (!GrCharStream::AtUnicodeCharBoundary(m_pgts, ichw)); 1650*b1cdbd2cSJim Jagielski- } while (isloutRet == kPosInfinity && ichw < m_ichwAssocsLim); 1651*b1cdbd2cSJim Jagielski+ isloutRet = m_prgisloutBefore[ichwTemp - m_ichwAssocsMin]; 1652*b1cdbd2cSJim Jagielski+ do { ++ichwTemp; } 1653*b1cdbd2cSJim Jagielski+ while (!GrCharStream::AtUnicodeCharBoundary(m_pgts, ichwTemp)); 1654*b1cdbd2cSJim Jagielski+ } while (isloutRet == kPosInfinity && ichwTemp < m_ichwAssocsLim); 1655*b1cdbd2cSJim Jagielski return isloutRet; 1656*b1cdbd2cSJim Jagielski } 1657*b1cdbd2cSJim Jagielski else 1658*b1cdbd2cSJim Jagielski { 1659*b1cdbd2cSJim Jagielski int isloutRet; 1660*b1cdbd2cSJim Jagielski- int ichw = ichwSegOffset; 1661*b1cdbd2cSJim Jagielski+ int ichwTemp = ichwSegOffset; 1662*b1cdbd2cSJim Jagielski // If no association has been made, loop backward to the previous slot 1663*b1cdbd2cSJim Jagielski // we are after. As a last resort, answer kNegInfinity, meaning we 1664*b1cdbd2cSJim Jagielski // aren't after anything. 1665*b1cdbd2cSJim Jagielski do 1666*b1cdbd2cSJim Jagielski { 1667*b1cdbd2cSJim Jagielski- isloutRet = m_prgisloutAfter[ichw - m_ichwAssocsMin]; 1668*b1cdbd2cSJim Jagielski- do { --ichw; } 1669*b1cdbd2cSJim Jagielski- while (!GrCharStream::AtUnicodeCharBoundary(m_pgts, ichw)); 1670*b1cdbd2cSJim Jagielski- } while (isloutRet == kNegInfinity && ichw >= 0); 1671*b1cdbd2cSJim Jagielski+ isloutRet = m_prgisloutAfter[ichwTemp - m_ichwAssocsMin]; 1672*b1cdbd2cSJim Jagielski+ do { --ichwTemp; } 1673*b1cdbd2cSJim Jagielski+ while (!GrCharStream::AtUnicodeCharBoundary(m_pgts, ichwTemp)); 1674*b1cdbd2cSJim Jagielski+ } while (isloutRet == kNegInfinity && ichwTemp >= 0); 1675*b1cdbd2cSJim Jagielski return isloutRet; 1676*b1cdbd2cSJim Jagielski } 1677*b1cdbd2cSJim Jagielski Assert(false); // should never reach here 1678*b1cdbd2cSJim Jagielski@@ -2748,7 +2752,11 @@ 1679*b1cdbd2cSJim Jagielski that root glyph as one of its roots. 1680*b1cdbd2cSJim Jagielski OBSOLETE 1681*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1682*b1cdbd2cSJim Jagielski+#ifdef _DEBUG 1683*b1cdbd2cSJim Jagielski void Segment::AssertValidClusters(GrSlotStream * psstrm) 1684*b1cdbd2cSJim Jagielski+#else 1685*b1cdbd2cSJim Jagielski+void Segment::AssertValidClusters(GrSlotStream * /*psstrm*/) 1686*b1cdbd2cSJim Jagielski+#endif 1687*b1cdbd2cSJim Jagielski { 1688*b1cdbd2cSJim Jagielski #ifdef _DEBUG 1689*b1cdbd2cSJim Jagielski for (int islot = 0; islot < psstrm->WritePos(); islot++) 1690*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/src/segment/TransductionLog.cpp Wed Jan 28 04:01:29 2009 1691*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/TransductionLog.cpp Sat Aug 22 19:36:35 2009 1692*b1cdbd2cSJim Jagielski@@ -175,7 +175,7 @@ 1693*b1cdbd2cSJim Jagielski Output a file showing a log of the transduction process and the resulting segment. 1694*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1695*b1cdbd2cSJim Jagielski void GrTableManager::WriteXductnLog(std::ostream & strmOut, 1696*b1cdbd2cSJim Jagielski- GrCharStream * pchstrm, Segment * psegRet, 1697*b1cdbd2cSJim Jagielski+ GrCharStream * pchstrm, Segment * /*psegRet*/, 1698*b1cdbd2cSJim Jagielski int cbPrevSegDat, byte * pbPrevSegDat) 1699*b1cdbd2cSJim Jagielski { 1700*b1cdbd2cSJim Jagielski if (cbPrevSegDat == 0) 1701*b1cdbd2cSJim Jagielski@@ -416,8 +416,8 @@ 1702*b1cdbd2cSJim Jagielski the raw (UTF-16 or UTF-8) chars for display. To do this we get the raw characters 1703*b1cdbd2cSJim Jagielski directly from the text source. 1704*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1705*b1cdbd2cSJim Jagielski-void GrCharStream::GetLogDataRaw(GrTableManager * ptman, int cchl, int cchrBackup, 1706*b1cdbd2cSJim Jagielski- int cchrMaxRaw, int * prgchl, 1707*b1cdbd2cSJim Jagielski+void GrCharStream::GetLogDataRaw(GrTableManager * /*ptman*/, int cchl, int cchrBackup, 1708*b1cdbd2cSJim Jagielski+ int /*cchrMaxRaw*/, int * prgchl, 1709*b1cdbd2cSJim Jagielski utf16 * prgchw2, utf16 * prgchw3, utf16 * prgchw4, utf16 * prgchw5, utf16 * prgchw6, 1710*b1cdbd2cSJim Jagielski int * prgcchr) 1711*b1cdbd2cSJim Jagielski { 1712*b1cdbd2cSJim Jagielski@@ -441,7 +441,7 @@ 1713*b1cdbd2cSJim Jagielski case kutf8: 1714*b1cdbd2cSJim Jagielski prgchsRunText8 = new utf8[cchrRange]; 1715*b1cdbd2cSJim Jagielski m_pgts->fetch(ichrMin, cchrRange, prgchsRunText8); 1716*b1cdbd2cSJim Jagielski- for (int ichr = 0; ichr < cchrRange; ichr++) 1717*b1cdbd2cSJim Jagielski+ for (ichr = 0; ichr < cchrRange; ichr++) 1718*b1cdbd2cSJim Jagielski prgchwRunText[ichr] = (utf16)prgchsRunText8[ichr]; // zero-extend into UTF-16 buffer 1719*b1cdbd2cSJim Jagielski break; 1720*b1cdbd2cSJim Jagielski case kutf16: 1721*b1cdbd2cSJim Jagielski@@ -634,7 +634,7 @@ 1722*b1cdbd2cSJim Jagielski m_pzpst->LogRulesFiredAndFailed(strmOut, psstrmIn); 1723*b1cdbd2cSJim Jagielski } 1724*b1cdbd2cSJim Jagielski 1725*b1cdbd2cSJim Jagielski-void PassState::LogRulesFiredAndFailed(std::ostream & strmOut, GrSlotStream * psstrmIn) 1726*b1cdbd2cSJim Jagielski+void PassState::LogRulesFiredAndFailed(std::ostream & strmOut, GrSlotStream * /*psstrmIn*/) 1727*b1cdbd2cSJim Jagielski { 1728*b1cdbd2cSJim Jagielski 1729*b1cdbd2cSJim Jagielski strmOut << "PASS " << m_ipass << "\n\n" << "Rules matched: "; 1730*b1cdbd2cSJim Jagielski@@ -1193,7 +1193,7 @@ 1731*b1cdbd2cSJim Jagielski if (fAnyPseudos) 1732*b1cdbd2cSJim Jagielski { 1733*b1cdbd2cSJim Jagielski strmOut << "Actual glyphs: "; 1734*b1cdbd2cSJim Jagielski- for (int islout = 0; islout < m_cslout; islout++) 1735*b1cdbd2cSJim Jagielski+ for (islout = 0; islout < m_cslout; islout++) 1736*b1cdbd2cSJim Jagielski { 1737*b1cdbd2cSJim Jagielski GrSlotOutput * psloutTmp = m_prgslout + islout; 1738*b1cdbd2cSJim Jagielski if (psloutTmp->GlyphID() != psloutTmp->ActualGlyphForOutput(ptman)) 1739*b1cdbd2cSJim Jagielski@@ -1319,7 +1319,7 @@ 1740*b1cdbd2cSJim Jagielski Write out the header lines for the slot contents. 1741*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1742*b1cdbd2cSJim Jagielski void GrTableManager::LogSlotHeader(std::ostream & strmOut, int islotLim, 1743*b1cdbd2cSJim Jagielski- int cspPerSlot, int cspLeading, int islotMin) 1744*b1cdbd2cSJim Jagielski+ int /*cspPerSlot*/, int cspLeading, int islotMin) 1745*b1cdbd2cSJim Jagielski { 1746*b1cdbd2cSJim Jagielski islotLim = min(islotLim, MAX_SLOTS); 1747*b1cdbd2cSJim Jagielski 1748*b1cdbd2cSJim Jagielski@@ -1721,7 +1721,7 @@ 1749*b1cdbd2cSJim Jagielski 1750*b1cdbd2cSJim Jagielski case kslatAttAtX: // always do these in pairs 1751*b1cdbd2cSJim Jagielski case kslatAttAtY: 1752*b1cdbd2cSJim Jagielski- if (m_mAttachAtX != (pslotPrev ? pslotPrev->m_mAttachAtX : kNotYetSet) || 1753*b1cdbd2cSJim Jagielski+ if (m_mAttachAtX != (pslotPrev ? pslotPrev->m_mAttachAtX : static_cast<short>(kNotYetSet)) || 1754*b1cdbd2cSJim Jagielski m_mAttachAtY != (pslotPrev ? pslotPrev->m_mAttachAtY : 0)) 1755*b1cdbd2cSJim Jagielski { 1756*b1cdbd2cSJim Jagielski ptman->LogInTable(strmOut, 1757*b1cdbd2cSJim Jagielski@@ -1730,7 +1730,7 @@ 1758*b1cdbd2cSJim Jagielski } 1759*b1cdbd2cSJim Jagielski break; 1760*b1cdbd2cSJim Jagielski case kslatAttAtGpt: 1761*b1cdbd2cSJim Jagielski- if (m_nAttachAtGpoint != (pslotPrev ? pslotPrev->m_nAttachAtGpoint : kNotYetSet)) 1762*b1cdbd2cSJim Jagielski+ if (m_nAttachAtGpoint != (pslotPrev ? pslotPrev->m_nAttachAtGpoint : static_cast<short>(kNotYetSet))) 1763*b1cdbd2cSJim Jagielski { 1764*b1cdbd2cSJim Jagielski ptman->LogInTable(strmOut, 1765*b1cdbd2cSJim Jagielski ((m_nAttachAtGpoint == kGpointZero) ? 0 : m_nAttachAtGpoint)); 1766*b1cdbd2cSJim Jagielski@@ -1750,7 +1750,7 @@ 1767*b1cdbd2cSJim Jagielski 1768*b1cdbd2cSJim Jagielski case kslatAttWithX: // always do these in pairs 1769*b1cdbd2cSJim Jagielski case kslatAttWithY: 1770*b1cdbd2cSJim Jagielski- if (m_mAttachWithX != (pslotPrev ? pslotPrev->m_mAttachWithX : kNotYetSet) || 1771*b1cdbd2cSJim Jagielski+ if (m_mAttachWithX != (pslotPrev ? pslotPrev->m_mAttachWithX : static_cast<short>(kNotYetSet)) || 1772*b1cdbd2cSJim Jagielski m_mAttachWithY != (pslotPrev ? pslotPrev->m_mAttachWithY : 0)) 1773*b1cdbd2cSJim Jagielski { 1774*b1cdbd2cSJim Jagielski ptman->LogInTable(strmOut, 1775*b1cdbd2cSJim Jagielski@@ -1759,7 +1759,7 @@ 1776*b1cdbd2cSJim Jagielski } 1777*b1cdbd2cSJim Jagielski break; 1778*b1cdbd2cSJim Jagielski case kslatAttWithGpt: 1779*b1cdbd2cSJim Jagielski- if (m_nAttachWithGpoint != (pslotPrev ? pslotPrev->m_nAttachWithGpoint : kNotYetSet)) 1780*b1cdbd2cSJim Jagielski+ if (m_nAttachWithGpoint != (pslotPrev ? pslotPrev->m_nAttachWithGpoint : static_cast<short>(kNotYetSet))) 1781*b1cdbd2cSJim Jagielski { 1782*b1cdbd2cSJim Jagielski ptman->LogInTable(strmOut, 1783*b1cdbd2cSJim Jagielski ((m_nAttachWithGpoint == kGpointZero) ? 0 : m_nAttachWithGpoint)); 1784*b1cdbd2cSJim Jagielski@@ -1786,14 +1786,14 @@ 1785*b1cdbd2cSJim Jagielski break; 1786*b1cdbd2cSJim Jagielski 1787*b1cdbd2cSJim Jagielski case kslatBreak: 1788*b1cdbd2cSJim Jagielski- if (m_lb != (pslotPrev ? pslotPrev->m_lb : kNotYetSet8)) 1789*b1cdbd2cSJim Jagielski+ if (m_lb != (pslotPrev ? pslotPrev->m_lb : static_cast<sdata8>(kNotYetSet8))) 1790*b1cdbd2cSJim Jagielski { 1791*b1cdbd2cSJim Jagielski ptman->LogBreakWeightInTable(strmOut, m_lb); 1792*b1cdbd2cSJim Jagielski return; 1793*b1cdbd2cSJim Jagielski } 1794*b1cdbd2cSJim Jagielski break; 1795*b1cdbd2cSJim Jagielski case kslatDir: 1796*b1cdbd2cSJim Jagielski- if (m_dirc != (pslotPrev ? pslotPrev->m_dirc : kNotYetSet8)) 1797*b1cdbd2cSJim Jagielski+ if (m_dirc != (pslotPrev ? pslotPrev->m_dirc : static_cast<sdata8>(kNotYetSet8))) 1798*b1cdbd2cSJim Jagielski { 1799*b1cdbd2cSJim Jagielski ptman->LogDirCodeInTable(strmOut, m_dirc); 1800*b1cdbd2cSJim Jagielski return; 1801*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/test/ProfileHarness/GrUtfTextSrc.cpp Thu Jan 22 00:36:42 2009 1802*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/ProfileHarness/GrUtfTextSrc.cpp Sat Aug 22 19:36:35 2009 1803*b1cdbd2cSJim Jagielski@@ -210,12 +210,12 @@ 1804*b1cdbd2cSJim Jagielski } 1805*b1cdbd2cSJim Jagielski 1806*b1cdbd2cSJim Jagielski 1807*b1cdbd2cSJim Jagielski-bool GrUtfTextSrc::getRightToLeft(gr::toffset ich) 1808*b1cdbd2cSJim Jagielski+bool GrUtfTextSrc::getRightToLeft(gr::toffset /*ich*/) 1809*b1cdbd2cSJim Jagielski { 1810*b1cdbd2cSJim Jagielski return mRtl; // assumes src only contains one direction 1811*b1cdbd2cSJim Jagielski } 1812*b1cdbd2cSJim Jagielski 1813*b1cdbd2cSJim Jagielski-unsigned int GrUtfTextSrc::getDirectionDepth(gr::toffset ich) 1814*b1cdbd2cSJim Jagielski+unsigned int GrUtfTextSrc::getDirectionDepth(gr::toffset /*ich*/) 1815*b1cdbd2cSJim Jagielski { 1816*b1cdbd2cSJim Jagielski return (mRtl) ? 1 : 0; // TBD 1817*b1cdbd2cSJim Jagielski } 1818*b1cdbd2cSJim Jagielski@@ -254,7 +254,7 @@ 1819*b1cdbd2cSJim Jagielski return range; 1820*b1cdbd2cSJim Jagielski } 1821*b1cdbd2cSJim Jagielski 1822*b1cdbd2cSJim Jagielski-size_t GrUtfTextSrc::getFontFeatures(gr::toffset ich, gr::FeatureSetting * prgfset) 1823*b1cdbd2cSJim Jagielski+size_t GrUtfTextSrc::getFontFeatures(gr::toffset /*ich*/, gr::FeatureSetting * /*prgfset*/) 1824*b1cdbd2cSJim Jagielski { 1825*b1cdbd2cSJim Jagielski return 0; 1826*b1cdbd2cSJim Jagielski } 1827*b1cdbd2cSJim Jagielski@@ -277,14 +277,14 @@ 1828*b1cdbd2cSJim Jagielski 1829*b1cdbd2cSJim Jagielski // these should be called I hope 1830*b1cdbd2cSJim Jagielski float 1831*b1cdbd2cSJim Jagielski-GrUtfTextSrc::getFontSize(gr::toffset ich) 1832*b1cdbd2cSJim Jagielski+GrUtfTextSrc::getFontSize(gr::toffset /*ich*/) 1833*b1cdbd2cSJim Jagielski { 1834*b1cdbd2cSJim Jagielski assert(mFont); 1835*b1cdbd2cSJim Jagielski return mPointSize; 1836*b1cdbd2cSJim Jagielski } 1837*b1cdbd2cSJim Jagielski 1838*b1cdbd2cSJim Jagielski bool 1839*b1cdbd2cSJim Jagielski-GrUtfTextSrc::getBold(gr::toffset ich) 1840*b1cdbd2cSJim Jagielski+GrUtfTextSrc::getBold(gr::toffset /*ich*/) 1841*b1cdbd2cSJim Jagielski { 1842*b1cdbd2cSJim Jagielski assert(mFont); 1843*b1cdbd2cSJim Jagielski // NS_ASSERTION(false, "unexpected call to getBold"); 1844*b1cdbd2cSJim Jagielski@@ -293,7 +293,7 @@ 1845*b1cdbd2cSJim Jagielski } 1846*b1cdbd2cSJim Jagielski 1847*b1cdbd2cSJim Jagielski bool 1848*b1cdbd2cSJim Jagielski-GrUtfTextSrc::getItalic(gr::toffset ich) 1849*b1cdbd2cSJim Jagielski+GrUtfTextSrc::getItalic(gr::toffset /*ich*/) 1850*b1cdbd2cSJim Jagielski { 1851*b1cdbd2cSJim Jagielski assert(mFont); 1852*b1cdbd2cSJim Jagielski //NS_ASSERTION(false, "unexpected call to getItalic"); 1853*b1cdbd2cSJim Jagielski@@ -301,7 +301,7 @@ 1854*b1cdbd2cSJim Jagielski return mFont->italic(); 1855*b1cdbd2cSJim Jagielski } 1856*b1cdbd2cSJim Jagielski 1857*b1cdbd2cSJim Jagielski-gr::isocode GrUtfTextSrc::getLanguage(gr::toffset ich) 1858*b1cdbd2cSJim Jagielski+gr::isocode GrUtfTextSrc::getLanguage(gr::toffset /*ich*/) 1859*b1cdbd2cSJim Jagielski { 1860*b1cdbd2cSJim Jagielski gr::isocode unknown; 1861*b1cdbd2cSJim Jagielski std::fill_n(unknown.rgch, 4, '\0'); 1862*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/test/ProfileHarness/GrUtfTextSrc.h Thu Jan 22 00:36:42 2009 1863*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/ProfileHarness/GrUtfTextSrc.h Sat Aug 22 19:36:35 2009 1864*b1cdbd2cSJim Jagielski@@ -79,7 +79,7 @@ 1865*b1cdbd2cSJim Jagielski virtual size_t fetch(gr::toffset ichMin, size_t cch, gr::utf32 * prgchBuffer); 1866*b1cdbd2cSJim Jagielski virtual size_t fetch(gr::toffset ichMin, size_t cch, gr::utf16 * prgchwBuffer); 1867*b1cdbd2cSJim Jagielski virtual size_t fetch(gr::toffset ichMin, size_t cch, gr::utf8 * prgchsBuffer); 1868*b1cdbd2cSJim Jagielski- virtual gr::GrResult getFaceName(int ich, unsigned int cchMax, 1869*b1cdbd2cSJim Jagielski+ virtual gr::GrResult getFaceName(int /*ich*/, unsigned int /*cchMax*/, 1870*b1cdbd2cSJim Jagielski gr::utf16 * prgchFaceName, unsigned int * pcchLen) 1871*b1cdbd2cSJim Jagielski { 1872*b1cdbd2cSJim Jagielski prgchFaceName[0] = 0; 1873*b1cdbd2cSJim Jagielski@@ -92,12 +92,12 @@ 1874*b1cdbd2cSJim Jagielski virtual bool getItalic(gr::toffset ich); 1875*b1cdbd2cSJim Jagielski virtual bool getRightToLeft(gr::toffset ich); 1876*b1cdbd2cSJim Jagielski virtual unsigned int getDirectionDepth(gr::toffset ich); 1877*b1cdbd2cSJim Jagielski- virtual float getVerticalOffset(gr::toffset ich) { return 0;}; 1878*b1cdbd2cSJim Jagielski+ virtual float getVerticalOffset(gr::toffset /*ich*/) { return 0;}; 1879*b1cdbd2cSJim Jagielski virtual gr::isocode getLanguage(gr::toffset ich); 1880*b1cdbd2cSJim Jagielski 1881*b1cdbd2cSJim Jagielski virtual std::pair<gr::toffset, gr::toffset> propertyRange(gr::toffset ich); 1882*b1cdbd2cSJim Jagielski virtual size_t getFontFeatures(gr::toffset ich, gr::FeatureSetting * prgfset); 1883*b1cdbd2cSJim Jagielski- virtual bool sameSegment(gr::toffset ich1, gr::toffset ich2) { return true; }; 1884*b1cdbd2cSJim Jagielski+ virtual bool sameSegment(gr::toffset /*ich1*/, gr::toffset /*ich2*/) { return true; }; 1885*b1cdbd2cSJim Jagielski 1886*b1cdbd2cSJim Jagielski protected: 1887*b1cdbd2cSJim Jagielski bool checkBuffer8(); 1888*b1cdbd2cSJim Jagielski@@ -129,11 +129,11 @@ 1889*b1cdbd2cSJim Jagielski virtual void getColors(gr::toffset ich, int * pclrFore, int * pclrBack); 1890*b1cdbd2cSJim Jagielski 1891*b1cdbd2cSJim Jagielski // Shouldn't be here! 1892*b1cdbd2cSJim Jagielski- virtual gr::GrResult Fetch(int ichMin, int ichLim, gr::utf16 * prgchBuf) { return gr::kresNotImpl; }; 1893*b1cdbd2cSJim Jagielski- virtual gr::GrResult get_Length(int * pcch) { return gr::kresNotImpl; }; 1894*b1cdbd2cSJim Jagielski- virtual gr::GrResult GetFontVariations(int ich, 1895*b1cdbd2cSJim Jagielski- wchar_t * prgchFontVar, int ichMax, int * pich, 1896*b1cdbd2cSJim Jagielski- int * pichMin, int * pichLim) { return gr::kresNotImpl; }; 1897*b1cdbd2cSJim Jagielski+ virtual gr::GrResult Fetch(int /*ichMin*/, int /*ichLim*/, gr::utf16 * /*prgchBuf*/) { return gr::kresNotImpl; }; 1898*b1cdbd2cSJim Jagielski+ virtual gr::GrResult get_Length(int * /*pcch*/) { return gr::kresNotImpl; }; 1899*b1cdbd2cSJim Jagielski+ virtual gr::GrResult GetFontVariations(int /*ich*/, 1900*b1cdbd2cSJim Jagielski+ wchar_t * /*prgchFontVar*/, int /*ichMax*/, int * /*pich*/, 1901*b1cdbd2cSJim Jagielski+ int * /*pichMin*/, int * /*pichLim*/) { return gr::kresNotImpl; }; 1902*b1cdbd2cSJim Jagielski 1903*b1cdbd2cSJim Jagielski }; 1904*b1cdbd2cSJim Jagielski 1905*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/test/ProfileHarness/ProfileHarness.cpp Thu Jan 22 00:36:42 2009 1906*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/ProfileHarness/ProfileHarness.cpp Sat Aug 22 19:36:35 2009 1907*b1cdbd2cSJim Jagielski@@ -39,14 +39,14 @@ 1908*b1cdbd2cSJim Jagielski typedef std::pair< gr::GlyphIterator, gr::GlyphIterator > GlyphRange; 1909*b1cdbd2cSJim Jagielski 1910*b1cdbd2cSJim Jagielski #ifndef HAVE_STRTOF 1911*b1cdbd2cSJim Jagielski-float strtof(char * text, char ** ignore) 1912*b1cdbd2cSJim Jagielski+float strtof(char * text, char ** /*ignore*/) 1913*b1cdbd2cSJim Jagielski { 1914*b1cdbd2cSJim Jagielski return static_cast<float>(atof(text)); 1915*b1cdbd2cSJim Jagielski } 1916*b1cdbd2cSJim Jagielski #endif 1917*b1cdbd2cSJim Jagielski 1918*b1cdbd2cSJim Jagielski #ifndef HAVE_STRTOL 1919*b1cdbd2cSJim Jagielski-long strtol(char * text, char ** ignore) 1920*b1cdbd2cSJim Jagielski+long strtol(char * text, char ** /*ignore*/) 1921*b1cdbd2cSJim Jagielski { 1922*b1cdbd2cSJim Jagielski return atol(text); 1923*b1cdbd2cSJim Jagielski } 1924*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/test/RegressionTest/GrJustifier.cpp Thu Jan 22 00:36:42 2009 1925*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/RegressionTest/GrJustifier.cpp Sat Aug 22 19:36:35 2009 1926*b1cdbd2cSJim Jagielski@@ -327,7 +327,7 @@ 1927*b1cdbd2cSJim Jagielski &dxStretchAchieved); 1928*b1cdbd2cSJim Jagielski for (int iiiGlyph = 0; iiiGlyph < cStretchable; iiiGlyph++) 1929*b1cdbd2cSJim Jagielski { 1930*b1cdbd2cSJim Jagielski- int iiGlyph = viiGlyphsRem[iiiGlyph]; 1931*b1cdbd2cSJim Jagielski+ iiGlyph = viiGlyphsRem[iiiGlyph]; 1932*b1cdbd2cSJim Jagielski vdxStretchLeft[iiGlyph] = vdxStretchRem[iiiGlyph]; 1933*b1cdbd2cSJim Jagielski vdxWidth[iiGlyph] = vdxWidthRem[iiiGlyph]; 1934*b1cdbd2cSJim Jagielski } 1935*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/test/RegressionTest/RegressionTest.cpp Thu Jan 22 00:36:42 2009 1936*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/RegressionTest/RegressionTest.cpp Sat Aug 22 19:36:35 2009 1937*b1cdbd2cSJim Jagielski@@ -675,7 +675,7 @@ 1938*b1cdbd2cSJim Jagielski OutputErrorAux(ptcase, strErr, i, true, valueFound, valueExpected); 1939*b1cdbd2cSJim Jagielski } 1940*b1cdbd2cSJim Jagielski 1941*b1cdbd2cSJim Jagielski-void OutputErrorAux(TestCase * ptcase, std::string strErr, int i, 1942*b1cdbd2cSJim Jagielski+void OutputErrorAux(TestCase * /*ptcase*/, std::string strErr, int i, 1943*b1cdbd2cSJim Jagielski bool showValues, int valueFound, int valueExpected) 1944*b1cdbd2cSJim Jagielski { 1945*b1cdbd2cSJim Jagielski // if (g_debugMode) 1946*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/test/RegressionTest/SimpleTextSrc.cpp Thu Jan 22 00:36:42 2009 1947*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/RegressionTest/SimpleTextSrc.cpp Sat Aug 22 19:36:36 2009 1948*b1cdbd2cSJim Jagielski@@ -70,7 +70,7 @@ 1949*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 1950*b1cdbd2cSJim Jagielski Return true if the text uses a right-to-left writing system. 1951*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1952*b1cdbd2cSJim Jagielski-bool SimpleTextSrc::getRightToLeft(toffset ich) 1953*b1cdbd2cSJim Jagielski+bool SimpleTextSrc::getRightToLeft(toffset /*ich*/) 1954*b1cdbd2cSJim Jagielski { 1955*b1cdbd2cSJim Jagielski return false; 1956*b1cdbd2cSJim Jagielski } 1957*b1cdbd2cSJim Jagielski@@ -78,7 +78,7 @@ 1958*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 1959*b1cdbd2cSJim Jagielski Return the depth of embedding of the writing system. 1960*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1961*b1cdbd2cSJim Jagielski-unsigned int SimpleTextSrc::getDirectionDepth(toffset ich) 1962*b1cdbd2cSJim Jagielski+unsigned int SimpleTextSrc::getDirectionDepth(toffset /*ich*/) 1963*b1cdbd2cSJim Jagielski { 1964*b1cdbd2cSJim Jagielski return 0; 1965*b1cdbd2cSJim Jagielski } 1966*b1cdbd2cSJim Jagielski@@ -87,7 +87,7 @@ 1967*b1cdbd2cSJim Jagielski Return the vertical offset of the text. This simple implementation provides no 1968*b1cdbd2cSJim Jagielski vertical offset. 1969*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 1970*b1cdbd2cSJim Jagielski-float SimpleTextSrc::getVerticalOffset(toffset ich) 1971*b1cdbd2cSJim Jagielski+float SimpleTextSrc::getVerticalOffset(toffset /*ich*/) 1972*b1cdbd2cSJim Jagielski { 1973*b1cdbd2cSJim Jagielski return 0; 1974*b1cdbd2cSJim Jagielski } 1975*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/test/RegressionTest/SimpleTextSrc.h Thu Jan 22 00:36:42 2009 1976*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/RegressionTest/SimpleTextSrc.h Sat Aug 22 19:36:36 2009 1977*b1cdbd2cSJim Jagielski@@ -59,12 +59,12 @@ 1978*b1cdbd2cSJim Jagielski { 1979*b1cdbd2cSJim Jagielski return m_cchLength; 1980*b1cdbd2cSJim Jagielski } 1981*b1cdbd2cSJim Jagielski- virtual size_t fetch(toffset ichMin, size_t cch, utf32 * prgchBuffer) 1982*b1cdbd2cSJim Jagielski+ virtual size_t fetch(toffset /*ichMin*/, size_t /*cch*/, utf32 * /*prgchBuffer*/) 1983*b1cdbd2cSJim Jagielski { 1984*b1cdbd2cSJim Jagielski throw; 1985*b1cdbd2cSJim Jagielski } 1986*b1cdbd2cSJim Jagielski virtual size_t fetch(toffset ichMin, size_t cch, gr::utf16 * prgchwBuffer); 1987*b1cdbd2cSJim Jagielski- virtual size_t fetch(toffset ichMin, size_t cch, utf8 * prgchsBuffer) 1988*b1cdbd2cSJim Jagielski+ virtual size_t fetch(toffset /*ichMin*/, size_t /*cch*/, utf8 * /*prgchsBuffer*/) 1989*b1cdbd2cSJim Jagielski { 1990*b1cdbd2cSJim Jagielski throw; 1991*b1cdbd2cSJim Jagielski }; 1992*b1cdbd2cSJim Jagielski@@ -73,14 +73,14 @@ 1993*b1cdbd2cSJim Jagielski virtual unsigned int getDirectionDepth(toffset ich); 1994*b1cdbd2cSJim Jagielski virtual float getVerticalOffset(toffset ich); 1995*b1cdbd2cSJim Jagielski 1996*b1cdbd2cSJim Jagielski- virtual isocode getLanguage(toffset ich) 1997*b1cdbd2cSJim Jagielski+ virtual isocode getLanguage(toffset /*ich*/) 1998*b1cdbd2cSJim Jagielski { 1999*b1cdbd2cSJim Jagielski isocode ret; 2000*b1cdbd2cSJim Jagielski ret.rgch[0] = 'e'; ret.rgch[1] = 'n'; ret.rgch[2] = 0; ret.rgch[3] = 0; 2001*b1cdbd2cSJim Jagielski return ret; 2002*b1cdbd2cSJim Jagielski } 2003*b1cdbd2cSJim Jagielski 2004*b1cdbd2cSJim Jagielski- virtual std::pair<toffset, toffset> propertyRange(toffset ich) 2005*b1cdbd2cSJim Jagielski+ virtual std::pair<toffset, toffset> propertyRange(toffset /*ich*/) 2006*b1cdbd2cSJim Jagielski { 2007*b1cdbd2cSJim Jagielski std::pair<toffset, toffset> pairRet; 2008*b1cdbd2cSJim Jagielski pairRet.first = 0; 2009*b1cdbd2cSJim Jagielski@@ -88,16 +88,16 @@ 2010*b1cdbd2cSJim Jagielski return pairRet; 2011*b1cdbd2cSJim Jagielski } 2012*b1cdbd2cSJim Jagielski 2013*b1cdbd2cSJim Jagielski- virtual size_t getFontFeatures(toffset ich, FeatureSetting * prgfset) 2014*b1cdbd2cSJim Jagielski+ virtual size_t getFontFeatures(toffset /*ich*/, FeatureSetting * /*prgfset*/) 2015*b1cdbd2cSJim Jagielski { 2016*b1cdbd2cSJim Jagielski return 0; // no features in this simple implementation 2017*b1cdbd2cSJim Jagielski } 2018*b1cdbd2cSJim Jagielski- virtual bool sameSegment(toffset ich1, toffset ich2) 2019*b1cdbd2cSJim Jagielski+ virtual bool sameSegment(toffset /*ich1*/, toffset /*ich2*/) 2020*b1cdbd2cSJim Jagielski { 2021*b1cdbd2cSJim Jagielski return true; 2022*b1cdbd2cSJim Jagielski } 2023*b1cdbd2cSJim Jagielski 2024*b1cdbd2cSJim Jagielski- virtual void getColors(toffset ich, int * pclrFore, int * pclrBack) 2025*b1cdbd2cSJim Jagielski+ virtual void getColors(toffset /*ich*/, int * pclrFore, int * pclrBack) 2026*b1cdbd2cSJim Jagielski { 2027*b1cdbd2cSJim Jagielski *pclrFore = kclrBlack; 2028*b1cdbd2cSJim Jagielski *pclrBack = kclrTransparent; 2029*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/wrappers/win32/WinFont.cpp Thu Jan 29 10:33:19 2009 2030*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/wrappers/win32/WinFont.cpp Sat Aug 22 19:36:36 2009 2031*b1cdbd2cSJim Jagielski@@ -70,6 +72,7 @@ 2032*b1cdbd2cSJim Jagielski // But don't store m_hfont, because we don't really "own" it; the client is 2033*b1cdbd2cSJim Jagielski // responsible for releasing it. 2034*b1cdbd2cSJim Jagielski m_hfont = 0; 2035*b1cdbd2cSJim Jagielski+ m_pGlyphMetricMap = NULL; 2036*b1cdbd2cSJim Jagielski memset(&m_fpropSet, 0, sizeof(m_fpropSet)); 2037*b1cdbd2cSJim Jagielski 2038*b1cdbd2cSJim Jagielski m_pbCmapTbl = NULL; 2039*b1cdbd2cSJim Jagielski@@ -196,6 +198,7 @@ 2040*b1cdbd2cSJim Jagielski m_hdc = 0; 2041*b1cdbd2cSJim Jagielski m_hfont = 0; 2042*b1cdbd2cSJim Jagielski m_hfontClient = 0; 2043*b1cdbd2cSJim Jagielski+ m_pGlyphMetricMap = NULL; 2044*b1cdbd2cSJim Jagielski memset(&m_fpropSet, 0, sizeof(FontProps)); 2045*b1cdbd2cSJim Jagielski 2046*b1cdbd2cSJim Jagielski m_pbCmapTbl = NULL; 2047*b1cdbd2cSJim Jagielski@@ -408,7 +410,7 @@ 2048*b1cdbd2cSJim Jagielski if (pPolyCurve->wType == TT_PRIM_QSPLINE && 2049*b1cdbd2cSJim Jagielski // test if this is the last curve 2050*b1cdbd2cSJim Jagielski pPolyHdr->cb - (int)((byte *)(&pPolyCurve->apfx[j]) - (byte *)(pPolyHdr)) 2051*b1cdbd2cSJim Jagielski- == sizeof POINTFX && 2052*b1cdbd2cSJim Jagielski+ == sizeof (POINTFX) && 2053*b1cdbd2cSJim Jagielski // and the two points are identical 2054*b1cdbd2cSJim Jagielski CompareFixed(pPolyCurve->apfx[j].x, pPolyHdr->pfxStart.x) && 2055*b1cdbd2cSJim Jagielski CompareFixed(pPolyCurve->apfx[j].y, pPolyHdr->pfxStart.y)) 2056*b1cdbd2cSJim Jagielski@@ -457,6 +459,16 @@ 2057*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 2058*b1cdbd2cSJim Jagielski void WinFont::getGlyphMetrics(gid16 chw, gr::Rect & boundingBox, gr::Point & advances) 2059*b1cdbd2cSJim Jagielski { 2060*b1cdbd2cSJim Jagielski+ if (m_pGlyphMetricMap) 2061*b1cdbd2cSJim Jagielski+ { 2062*b1cdbd2cSJim Jagielski+ GlyphMetricMap::iterator i = m_pGlyphMetricMap->find(chw); 2063*b1cdbd2cSJim Jagielski+ if (i != m_pGlyphMetricMap->end()) 2064*b1cdbd2cSJim Jagielski+ { 2065*b1cdbd2cSJim Jagielski+ boundingBox = i->second.first; 2066*b1cdbd2cSJim Jagielski+ advances = i->second.second; 2067*b1cdbd2cSJim Jagielski+ return; 2068*b1cdbd2cSJim Jagielski+ } 2069*b1cdbd2cSJim Jagielski+ } 2070*b1cdbd2cSJim Jagielski GLYPHMETRICS gm; 2071*b1cdbd2cSJim Jagielski const MAT2 mat2 = {{0,1}, {0,0}, {0,0}, {0,1}}; 2072*b1cdbd2cSJim Jagielski if (GDI_ERROR == ::GetGlyphOutline(m_hdc, chw, GGO_GLYPH_INDEX | GGO_METRICS, 2073*b1cdbd2cSJim Jagielski@@ -474,6 +476,10 @@ 2074*b1cdbd2cSJim Jagielski boundingBox.bottom = (float)gm.gmptGlyphOrigin.y - gm.gmBlackBoxY; 2075*b1cdbd2cSJim Jagielski advances.x = gm.gmCellIncX; 2076*b1cdbd2cSJim Jagielski advances.y = gm.gmCellIncY; 2077*b1cdbd2cSJim Jagielski+ if (m_pGlyphMetricMap) 2078*b1cdbd2cSJim Jagielski+ { 2079*b1cdbd2cSJim Jagielski+ (*m_pGlyphMetricMap)[chw] = std::pair<gr::Rect,gr::Point>(boundingBox, advances); 2080*b1cdbd2cSJim Jagielski+ } 2081*b1cdbd2cSJim Jagielski } 2082*b1cdbd2cSJim Jagielski 2083*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 2084*b1cdbd2cSJim Jagielski@@ -618,7 +620,10 @@ 2085*b1cdbd2cSJim Jagielski 2086*b1cdbd2cSJim Jagielski static int cCreateFontCalls = 0; 2087*b1cdbd2cSJim Jagielski static int cCreateFontZero = 0; 2088*b1cdbd2cSJim Jagielski- HFONT hfont = g_fhc.GetFont(lf); 2089*b1cdbd2cSJim Jagielski+ FontHandleCache::FontCacheValue cache = g_fhc.GetCache(lf); 2090*b1cdbd2cSJim Jagielski+ HFONT hfont = cache.hfont; 2091*b1cdbd2cSJim Jagielski+ m_pGlyphMetricMap = cache.pGlyphMetricMap; 2092*b1cdbd2cSJim Jagielski+ //HFONT hfont = g_fhc.GetFont(lf); 2093*b1cdbd2cSJim Jagielski //char ch1[200]; 2094*b1cdbd2cSJim Jagielski //if (hfont == 0) 2095*b1cdbd2cSJim Jagielski //{ 2096*b1cdbd2cSJim Jagielski@@ -731,7 +733,7 @@ 2097*b1cdbd2cSJim Jagielski @param lf LOGFONT value that describes the desired font 2098*b1cdbd2cSJim Jagielski @return Font handle 2099*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 2100*b1cdbd2cSJim Jagielski-HFONT WinFont::FontHandleCache::GetFont(LOGFONT & lf) 2101*b1cdbd2cSJim Jagielski+WinFont::FontHandleCache::FontCacheValue WinFont::FontHandleCache::GetCache(LOGFONT & lf) 2102*b1cdbd2cSJim Jagielski { 2103*b1cdbd2cSJim Jagielski FontCacheValue fcv; 2104*b1cdbd2cSJim Jagielski FontHandleHashMap::iterator itFound = m_hmlffcv.find(lf); 2105*b1cdbd2cSJim Jagielski@@ -752,11 +754,12 @@ 2106*b1cdbd2cSJim Jagielski THROW(kresFail); 2107*b1cdbd2cSJim Jagielski 2108*b1cdbd2cSJim Jagielski fcv.nRefs = 1; 2109*b1cdbd2cSJim Jagielski+ fcv.pGlyphMetricMap = new GlyphMetricMap(); 2110*b1cdbd2cSJim Jagielski 2111*b1cdbd2cSJim Jagielski m_hmlffcv.insert(std::pair<LOGFONT, FontCacheValue>(lf, fcv)); 2112*b1cdbd2cSJim Jagielski } 2113*b1cdbd2cSJim Jagielski 2114*b1cdbd2cSJim Jagielski- return fcv.hfont; 2115*b1cdbd2cSJim Jagielski+ return fcv; 2116*b1cdbd2cSJim Jagielski } 2117*b1cdbd2cSJim Jagielski 2118*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 2119*b1cdbd2cSJim Jagielski@@ -767,7 +767,7 @@ 2120*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 2121*b1cdbd2cSJim Jagielski void WinFont::FontHandleCache::DeleteFont(HFONT hfont) 2122*b1cdbd2cSJim Jagielski { 2123*b1cdbd2cSJim Jagielski- if (!hfont || !m_bValid) 2124*b1cdbd2cSJim Jagielski+ if (!hfont || !m_bValid || m_hmlffcv.size() == 0) 2125*b1cdbd2cSJim Jagielski return; 2126*b1cdbd2cSJim Jagielski 2127*b1cdbd2cSJim Jagielski // find the font in the hash map 2128*b1cdbd2cSJim Jagielski@@ -782,6 +784,8 @@ 2129*b1cdbd2cSJim Jagielski { 2130*b1cdbd2cSJim Jagielski // delete font 2131*b1cdbd2cSJim Jagielski ::DeleteObject(hfont); 2132*b1cdbd2cSJim Jagielski+ if (fcv.pGlyphMetricMap) 2133*b1cdbd2cSJim Jagielski+ delete fcv.pGlyphMetricMap; 2134*b1cdbd2cSJim Jagielski m_hmlffcv.erase(it); 2135*b1cdbd2cSJim Jagielski } 2136*b1cdbd2cSJim Jagielski else 2137*b1cdbd2cSJim Jagielski@@ -832,7 +832,8 @@ 2138*b1cdbd2cSJim Jagielski bool WinFont::LogFontHashFuncs::operator() (const WinFont::LogFontWrapper & key1, 2139*b1cdbd2cSJim Jagielski const WinFont::LogFontWrapper & key2) const 2140*b1cdbd2cSJim Jagielski { 2141*b1cdbd2cSJim Jagielski- return (key1 == key2); 2142*b1cdbd2cSJim Jagielski+ // return true if key1 should be ordered before key2 2143*b1cdbd2cSJim Jagielski+ return (operator()(key1) < operator()(key2)); 2144*b1cdbd2cSJim Jagielski } 2145*b1cdbd2cSJim Jagielski 2146*b1cdbd2cSJim Jagielski /*-------------------------------------------------------------------------------------- 2147*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/wrappers/win32/WinFont.h Thu Jan 29 10:33:19 2009 2148*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/wrappers/win32/WinFont.h Sat Aug 22 19:36:36 2009 2149*b1cdbd2cSJim Jagielski@@ -27,7 +27,13 @@ 2150*b1cdbd2cSJim Jagielski #include "GrClient.h" 2151*b1cdbd2cSJim Jagielski #include "Font.h" 2152*b1cdbd2cSJim Jagielski+#include <map> 2153*b1cdbd2cSJim Jagielski 2154*b1cdbd2cSJim Jagielski+#ifdef _STLPORT_VERSION 2155*b1cdbd2cSJim Jagielski+namespace stdext = _STLP_STD; 2156*b1cdbd2cSJim Jagielski+#endif 2157*b1cdbd2cSJim Jagielski+ 2158*b1cdbd2cSJim Jagielski namespace gr 2159*b1cdbd2cSJim Jagielski { 2160*b1cdbd2cSJim Jagielski+typedef std::map<gid16, std::pair<gr::Rect, gr::Point> > GlyphMetricMap; 2161*b1cdbd2cSJim Jagielski 2162*b1cdbd2cSJim Jagielski class FontFace; 2163*b1cdbd2cSJim Jagielski@@ -100,6 +110,7 @@ 2164*b1cdbd2cSJim Jagielski HFONT m_hfontClient; // need to replace this HFONT into the DC when we are finished 2165*b1cdbd2cSJim Jagielski // with it 2166*b1cdbd2cSJim Jagielski 2167*b1cdbd2cSJim Jagielski+ GlyphMetricMap * m_pGlyphMetricMap; 2168*b1cdbd2cSJim Jagielski // Debugging: 2169*b1cdbd2cSJim Jagielski //OLECHAR m_rgchTemp[32]; 2170*b1cdbd2cSJim Jagielski 2171*b1cdbd2cSJim Jagielski@@ -185,11 +196,13 @@ 2172*b1cdbd2cSJim Jagielski class FontHandleCache // hungarian: fhc 2173*b1cdbd2cSJim Jagielski { 2174*b1cdbd2cSJim Jagielski public: 2175*b1cdbd2cSJim Jagielski- struct FontCacheValue 2176*b1cdbd2cSJim Jagielski+ struct FontCacheValue 2177*b1cdbd2cSJim Jagielski { 2178*b1cdbd2cSJim Jagielski int nRefs; // reference count 2179*b1cdbd2cSJim Jagielski HFONT hfont; // font handle 2180*b1cdbd2cSJim Jagielski 2181*b1cdbd2cSJim Jagielski+ GlyphMetricMap * pGlyphMetricMap; // glyph metrics 2182*b1cdbd2cSJim Jagielski+ 2183*b1cdbd2cSJim Jagielski bool operator==(const FontCacheValue & val) const 2184*b1cdbd2cSJim Jagielski { 2185*b1cdbd2cSJim Jagielski return (hfont == val.hfont); 2186*b1cdbd2cSJim Jagielski@@ -199,7 +212,8 @@ 2187*b1cdbd2cSJim Jagielski FontHandleCache() : m_bValid(true) {}; 2188*b1cdbd2cSJim Jagielski ~FontHandleCache(); 2189*b1cdbd2cSJim Jagielski 2190*b1cdbd2cSJim Jagielski- HFONT GetFont(LOGFONT & lf); 2191*b1cdbd2cSJim Jagielski+ //HFONT GetFont(LOGFONT & lf); 2192*b1cdbd2cSJim Jagielski+ FontCacheValue GetCache(LOGFONT & lf); 2193*b1cdbd2cSJim Jagielski void DeleteFont(HFONT hfont); 2194*b1cdbd2cSJim Jagielski 2195*b1cdbd2cSJim Jagielski typedef stdext::hash_map<LogFontWrapper, FontCacheValue, LogFontHashFuncs> FontHandleHashMap; 2196*b1cdbd2cSJim Jagielski--- misc/build/silgraphite-2.3.1/engine/test/RegressionTest/RtTextSrc.h~ 2009-01-22 05:06:42.000000000 +0630 2197*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/RegressionTest/RtTextSrc.h 2010-04-30 23:14:49.000000000 +0630 2198*b1cdbd2cSJim Jagielski@@ -44,18 +44,18 @@ 2199*b1cdbd2cSJim Jagielski } 2200*b1cdbd2cSJim Jagielski } 2201*b1cdbd2cSJim Jagielski 2202*b1cdbd2cSJim Jagielski- virtual size_t getFontFeatures(toffset ich, FeatureSetting * prgfset) 2203*b1cdbd2cSJim Jagielski+ virtual size_t getFontFeatures(toffset /*ich*/, FeatureSetting * prgfset) 2204*b1cdbd2cSJim Jagielski { 2205*b1cdbd2cSJim Jagielski // Note: size of prgfset buffer = gr::kMaxFeatures = 64 2206*b1cdbd2cSJim Jagielski std::copy(m_fset, m_fset + MAXFEAT, prgfset); 2207*b1cdbd2cSJim Jagielski return m_cFeats; 2208*b1cdbd2cSJim Jagielski } 2209*b1cdbd2cSJim Jagielski 2210*b1cdbd2cSJim Jagielski- virtual bool getRightToLeft(toffset ich) 2211*b1cdbd2cSJim Jagielski+ virtual bool getRightToLeft(toffset /*ich*/) 2212*b1cdbd2cSJim Jagielski { 2213*b1cdbd2cSJim Jagielski return m_fRtl; 2214*b1cdbd2cSJim Jagielski } 2215*b1cdbd2cSJim Jagielski- virtual unsigned int getDirectionDepth(toffset ich) 2216*b1cdbd2cSJim Jagielski+ virtual unsigned int getDirectionDepth(toffset /*ich*/) 2217*b1cdbd2cSJim Jagielski { 2218*b1cdbd2cSJim Jagielski return ((m_fRtl == 1) ? 1 : 0); 2219*b1cdbd2cSJim Jagielski } 2220*b1cdbd2cSJim Jagielski 2221*b1cdbd2cSJim Jagielski--- misc/build/silgraphite-2.3.1/engine/test/RegressionTest/GrJustifier.cpp 2010-06-21 12:55:34.000000000 +0630 2222*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/RegressionTest/GrJustifier.cpp 2010-06-21 13:16:59.000000000 +0630 2223*b1cdbd2cSJim Jagielski@@ -16,8 +16,9 @@ 2224*b1cdbd2cSJim Jagielski //:> Include files 2225*b1cdbd2cSJim Jagielski //:>******************************************************************************************** 2226*b1cdbd2cSJim Jagielski //#include "main.h" // This is used by clients, so main.h is not available 2227*b1cdbd2cSJim Jagielski- 2228*b1cdbd2cSJim Jagielski+#ifdef _MSC_VER 2229*b1cdbd2cSJim Jagielski #pragma hdrstop 2230*b1cdbd2cSJim Jagielski+#endif 2231*b1cdbd2cSJim Jagielski // any other headers (not precompiled) 2232*b1cdbd2cSJim Jagielski #include "GrClient.h" 2233*b1cdbd2cSJim Jagielski #include "ITextSource.h" 2234*b1cdbd2cSJim Jagielski@@ -31,9 +32,6 @@ 2235*b1cdbd2cSJim Jagielski #include <string> 2236*b1cdbd2cSJim Jagielski #endif 2237*b1cdbd2cSJim Jagielski 2238*b1cdbd2cSJim Jagielski-#undef THIS_FILE 2239*b1cdbd2cSJim Jagielski-DEFINE_THIS_FILE 2240*b1cdbd2cSJim Jagielski- 2241*b1cdbd2cSJim Jagielski //:>******************************************************************************************** 2242*b1cdbd2cSJim Jagielski //:> Global constants 2243*b1cdbd2cSJim Jagielski //:>******************************************************************************************** 2244*b1cdbd2cSJim Jagielski@@ -327,9 +325,9 @@ 2245*b1cdbd2cSJim Jagielski &dxStretchAchieved); 2246*b1cdbd2cSJim Jagielski for (int iiiGlyph = 0; iiiGlyph < cStretchable; iiiGlyph++) 2247*b1cdbd2cSJim Jagielski { 2248*b1cdbd2cSJim Jagielski- iiGlyph = viiGlyphsRem[iiiGlyph]; 2249*b1cdbd2cSJim Jagielski- vdxStretchLeft[iiGlyph] = vdxStretchRem[iiiGlyph]; 2250*b1cdbd2cSJim Jagielski- vdxWidth[iiGlyph] = vdxWidthRem[iiiGlyph]; 2251*b1cdbd2cSJim Jagielski+ int ivGlyph = viiGlyphsRem[iiiGlyph]; 2252*b1cdbd2cSJim Jagielski+ vdxStretchLeft[ivGlyph] = vdxStretchRem[iiiGlyph]; 2253*b1cdbd2cSJim Jagielski+ vdxWidth[ivGlyph] = vdxWidthRem[iiiGlyph]; 2254*b1cdbd2cSJim Jagielski } 2255*b1cdbd2cSJim Jagielski } 2256*b1cdbd2cSJim Jagielski else 2257*b1cdbd2cSJim Jagielski@@ -366,12 +364,12 @@ 2258*b1cdbd2cSJim Jagielski { 2259*b1cdbd2cSJim Jagielski #ifdef WIN32 2260*b1cdbd2cSJim Jagielski wchar_t rgchw[20]; 2261*b1cdbd2cSJim Jagielski- std::fill_n(rgchw, 20, 0); 2262*b1cdbd2cSJim Jagielski+ std::fill_n(rgchw, 20, L'\0'); 2263*b1cdbd2cSJim Jagielski _itow(dxStretchNeeded - dxStretchAchieved, rgchw, 10); 2264*b1cdbd2cSJim Jagielski std::wstring strTmp(L"justification failed by "); 2265*b1cdbd2cSJim Jagielski strTmp += rgchw; 2266*b1cdbd2cSJim Jagielski strTmp += L" units (width needed = "; 2267*b1cdbd2cSJim Jagielski- std::fill_n(rgchw, 10, 0); 2268*b1cdbd2cSJim Jagielski+ std::fill_n(rgchw, 10, L'\0'); 2269*b1cdbd2cSJim Jagielski _itow(dxDesiredWidth, rgchw, 10); 2270*b1cdbd2cSJim Jagielski strTmp += rgchw; 2271*b1cdbd2cSJim Jagielski strTmp += L")\n"; 2272*b1cdbd2cSJim Jagielski--- misc/build/silgraphite-2.3.1/engine/test/RegressionTest/GrJustifier.h 2009-01-22 05:06:42.000000000 +0630 2273*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/RegressionTest/GrJustifier.h 2010-06-21 13:16:49.000000000 +0630 2274*b1cdbd2cSJim Jagielski@@ -11,7 +11,9 @@ 2275*b1cdbd2cSJim Jagielski Description: 2276*b1cdbd2cSJim Jagielski A default justification agent for Graphite. 2277*b1cdbd2cSJim Jagielski -------------------------------------------------------------------------------*//*:End Ignore*/ 2278*b1cdbd2cSJim Jagielski+#ifdef _MSC_VER 2279*b1cdbd2cSJim Jagielski #pragma once 2280*b1cdbd2cSJim Jagielski+#endif 2281*b1cdbd2cSJim Jagielski #ifndef GRJUSTIFIER_INCLUDED 2282*b1cdbd2cSJim Jagielski #define GRJUSTIFIER_INCLUDED 2283*b1cdbd2cSJim Jagielski 2284*b1cdbd2cSJim Jagielski--- misc/build/silgraphite-2.3.1/engine/test/RegressionTest/SimpleTextSrc.h 2010-06-21 12:55:34.000000000 +0630 2285*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/RegressionTest/SimpleTextSrc.h 2010-06-21 13:18:12.000000000 +0630 2286*b1cdbd2cSJim Jagielski@@ -11,7 +11,9 @@ 2287*b1cdbd2cSJim Jagielski Description: 2288*b1cdbd2cSJim Jagielski A simple text source that shows how to use this interface within Graphite. 2289*b1cdbd2cSJim Jagielski -------------------------------------------------------------------------------*//*:End Ignore*/ 2290*b1cdbd2cSJim Jagielski+#ifdef _MSC_VER 2291*b1cdbd2cSJim Jagielski #pragma once 2292*b1cdbd2cSJim Jagielski+#endif 2293*b1cdbd2cSJim Jagielski #ifndef GRTXTSRC_INCLUDED 2294*b1cdbd2cSJim Jagielski #define GRTXTSRC_INCLUDED 2295*b1cdbd2cSJim Jagielski 2296*b1cdbd2cSJim Jagielski 2297*b1cdbd2cSJim Jagielski--- misc/build/silgraphite-2.3.1/engine/test/RegressionTest/SimpleTextSrc.cpp 2010-06-21 12:55:34.000000000 +0630 2298*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/test/RegressionTest/SimpleTextSrc.cpp 2010-06-21 13:18:24.000000000 +0630 2299*b1cdbd2cSJim Jagielski@@ -15,7 +15,9 @@ 2300*b1cdbd2cSJim Jagielski //:>******************************************************************************************** 2301*b1cdbd2cSJim Jagielski //:> Include files 2302*b1cdbd2cSJim Jagielski //:>******************************************************************************************** 2303*b1cdbd2cSJim Jagielski+#ifdef _MSC_VER 2304*b1cdbd2cSJim Jagielski #pragma hdrstop 2305*b1cdbd2cSJim Jagielski+#endif 2306*b1cdbd2cSJim Jagielski // any other headers (not precompiled) 2307*b1cdbd2cSJim Jagielski 2308*b1cdbd2cSJim Jagielski #include "GrClient.h" 2309*b1cdbd2cSJim Jagielski@@ -23,9 +25,6 @@ 2310*b1cdbd2cSJim Jagielski #include "ITextSource.h" 2311*b1cdbd2cSJim Jagielski #include "SimpleTextSrc.h" 2312*b1cdbd2cSJim Jagielski 2313*b1cdbd2cSJim Jagielski-#undef THIS_FILE 2314*b1cdbd2cSJim Jagielski-DEFINE_THIS_FILE 2315*b1cdbd2cSJim Jagielski- 2316*b1cdbd2cSJim Jagielski //:>******************************************************************************************** 2317*b1cdbd2cSJim Jagielski //:> Initialization and destruction 2318*b1cdbd2cSJim Jagielski //:>******************************************************************************************** 2319*b1cdbd2cSJim Jagielski--- misc/build/silgraphite-2.3.1/engine/src/segment/MemoryUsage.cpp 2009-01-22 05:06:42.000000000 +0630 2320*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/MemoryUsage.cpp 2010-06-21 13:36:36.000000000 +0630 2321*b1cdbd2cSJim Jagielski@@ -11,10 +11,10 @@ 2322*b1cdbd2cSJim Jagielski Description: 2323*b1cdbd2cSJim Jagielski Calculates memory usage for the engine and segments. 2324*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 2325*b1cdbd2cSJim Jagielski- 2326*b1cdbd2cSJim Jagielski+#ifdef _MSC_VER 2327*b1cdbd2cSJim Jagielski #pragma warning(disable: 4244) // conversion from wchar_t to char 2328*b1cdbd2cSJim Jagielski #pragma warning(disable: 4702) // unreachable code 2329*b1cdbd2cSJim Jagielski- 2330*b1cdbd2cSJim Jagielski+#endif 2331*b1cdbd2cSJim Jagielski //:>******************************************************************************************** 2332*b1cdbd2cSJim Jagielski //:> Include files 2333*b1cdbd2cSJim Jagielski //:>******************************************************************************************** 2334*b1cdbd2cSJim Jagielski@@ -54,8 +54,6 @@ 2335*b1cdbd2cSJim Jagielski #ifdef _MSC_VER 2336*b1cdbd2cSJim Jagielski #pragma hdrstop 2337*b1cdbd2cSJim Jagielski #endif 2338*b1cdbd2cSJim Jagielski-#undef THIS_FILE 2339*b1cdbd2cSJim Jagielski-DEFINE_THIS_FILE 2340*b1cdbd2cSJim Jagielski 2341*b1cdbd2cSJim Jagielski //:End Ignore 2342*b1cdbd2cSJim Jagielski 2343*b1cdbd2cSJim Jagielski--- misc/build/silgraphite-2.3.1/engine/src/segment/GrSlotState.h 2010-06-23 19:52:56.429060400 +0700 2344*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/GrSlotState.h 2010-05-25 11:51:15.195066300 +0700 2345*b1cdbd2cSJim Jagielski@@ -48,7 +48,7 @@ 2346*b1cdbd2cSJim Jagielski { 2347*b1cdbd2cSJim Jagielski } 2348*b1cdbd2cSJim Jagielski 2349*b1cdbd2cSJim Jagielski- ~GrSlotAbstract() 2350*b1cdbd2cSJim Jagielski+ virtual ~GrSlotAbstract() 2351*b1cdbd2cSJim Jagielski { 2352*b1cdbd2cSJim Jagielski // the table manager is responsible for destroying the contents of m_prgnVarLenBuf 2353*b1cdbd2cSJim Jagielski } 2354*b1cdbd2cSJim Jagielski@@ -231,7 +231,7 @@ 2355*b1cdbd2cSJim Jagielski ZapCompositeMetrics(); 2356*b1cdbd2cSJim Jagielski } 2357*b1cdbd2cSJim Jagielski 2358*b1cdbd2cSJim Jagielski- ~GrSlotState() 2359*b1cdbd2cSJim Jagielski+ virtual ~GrSlotState() 2360*b1cdbd2cSJim Jagielski { 2361*b1cdbd2cSJim Jagielski } 2362*b1cdbd2cSJim Jagielski 2363*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/include/graphite/Segment.h 2009-01-29 09:33:19.000000000 +0100 2364*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/include/graphite/Segment.h 2013-08-14 15:10:53.363864046 +0200 2365*b1cdbd2cSJim Jagielski@@ -64,7 +64,7 @@ 2366*b1cdbd2cSJim Jagielski virtual ~Segment(); 2367*b1cdbd2cSJim Jagielski 2368*b1cdbd2cSJim Jagielski // Basic copy constructor: 2369*b1cdbd2cSJim Jagielski- Segment(Segment & seg); 2370*b1cdbd2cSJim Jagielski+ Segment( const Segment&); 2371*b1cdbd2cSJim Jagielski 2372*b1cdbd2cSJim Jagielski // For making modified copies of segments: 2373*b1cdbd2cSJim Jagielski static Segment * LineContextSegment(Segment & seg, bool fStartLine, bool fEndLine); 2374*b1cdbd2cSJim Jagielski--- misc/build/silgraphite-2.3.1/engine/src/segment/Segment.cpp.bak 2010-06-23 19:59:54.611660400 +0700 2375*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/src/segment/Segment.cpp 2010-06-23 21:30:16.335460400 +0700 2376*b1cdbd2cSJim Jagielski@@ -246,6 +246,8 @@ 2377*b1cdbd2cSJim Jagielski 2378*b1cdbd2cSJim Jagielski m_dxsVisibleWidth = -1; 2379*b1cdbd2cSJim Jagielski m_dxsTotalWidth = -1; 2380*b1cdbd2cSJim Jagielski+ m_ichwAssocsMin = 0; 2381*b1cdbd2cSJim Jagielski+ m_ichwAssocsLim = 0; 2382*b1cdbd2cSJim Jagielski 2383*b1cdbd2cSJim Jagielski // m_psstrm = NULL; 2384*b1cdbd2cSJim Jagielski m_prgslout = NULL; 2385*b1cdbd2cSJim Jagielski@@ -435,7 +435,7 @@ 2386*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 2387*b1cdbd2cSJim Jagielski Basic copy method. 2388*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 2389*b1cdbd2cSJim Jagielski-Segment::Segment(Segment & seg) 2390*b1cdbd2cSJim Jagielski+Segment::Segment( const Segment& seg) 2391*b1cdbd2cSJim Jagielski { 2392*b1cdbd2cSJim Jagielski int islout; 2393*b1cdbd2cSJim Jagielski 2394*b1cdbd2cSJim Jagielski@@ -2988,9 +2988,10 @@ 2395*b1cdbd2cSJim Jagielski return kresOk; 2396*b1cdbd2cSJim Jagielski } 2397*b1cdbd2cSJim Jagielski 2398*b1cdbd2cSJim Jagielski- 2399*b1cdbd2cSJim Jagielski+#ifdef __GNUC__ 2400*b1cdbd2cSJim Jagielski // suppress GCC 4.3 warning for optimized min()/max() when called with (ich, ich+1) or similar 2401*b1cdbd2cSJim Jagielski #pragma GCC diagnostic ignored "-Wstrict-overflow" 2402*b1cdbd2cSJim Jagielski+#endif 2403*b1cdbd2cSJim Jagielski 2404*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------------------------------- 2405*b1cdbd2cSJim Jagielski Merge the given characters into the same Uniscribe cluster. This means merging any 2406*b1cdbd2cSJim Jagielski--- misc/build/silgraphite-2.3.1/wrappers/win32/win32_dll.cpp.bak 2008-05-09 18:10:30.000000000 +0700 2407*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/wrappers/win32/win32_dll.cpp 2010-05-10 15:46:54.291818000 +0700 2408*b1cdbd2cSJim Jagielski@@ -14,7 +14,7 @@ 2409*b1cdbd2cSJim Jagielski DllMain. This is the main DLL entry point for a non-MFC DLL. For an MFC DLL, DllMain is 2410*b1cdbd2cSJim Jagielski in DllModul.cpp. Both DllMains call ModuleEntry::DllMain. 2411*b1cdbd2cSJim Jagielski ----------------------------------------------------------------------------------------------*/ 2412*b1cdbd2cSJim Jagielski-extern "C" BOOL WINAPI DllMain(HMODULE hmod, DWORD dwReason, PVOID pvReserved) 2413*b1cdbd2cSJim Jagielski+extern "C" BOOL WINAPI DllMain(HMODULE hmod, DWORD dwReason, PVOID /*pvReserved*/) 2414*b1cdbd2cSJim Jagielski { 2415*b1cdbd2cSJim Jagielski bool fRet = true; 2416*b1cdbd2cSJim Jagielski 2417*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/include/graphite/GrFeature.h 2009-01-21 17:36:40.000000000 -0500 2418*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/include/graphite/GrFeature.h 2013-01-15 15:38:54.000000000 -0500 2419*b1cdbd2cSJim Jagielski@@ -21,6 +21,10 @@ 2420*b1cdbd2cSJim Jagielski 2421*b1cdbd2cSJim Jagielski //:End Ignore 2422*b1cdbd2cSJim Jagielski 2423*b1cdbd2cSJim Jagielski+#ifdef __FreeBSD__ 2424*b1cdbd2cSJim Jagielski+#define wstring basic_string<wchar_t> //quick dirty hack for not finding _STL::wstring 2425*b1cdbd2cSJim Jagielski+#endif 2426*b1cdbd2cSJim Jagielski+ 2427*b1cdbd2cSJim Jagielski #include "GrAppData.h" 2428*b1cdbd2cSJim Jagielski 2429*b1cdbd2cSJim Jagielski namespace gr 2430*b1cdbd2cSJim Jagielski--- misc/silgraphite-2.3.1/engine/include/graphite/SegmentAux.h Thu Jan 22 00:36:40 2009 2431*b1cdbd2cSJim Jagielski+++ misc/build/silgraphite-2.3.1/engine/include/graphite/SegmentAux.h Sat Aug 22 19:36:32 2009 2432*b1cdbd2cSJim Jagielski@@ -232,8 +232,12 @@ 2433*b1cdbd2cSJim Jagielski protected: 2434*b1cdbd2cSJim Jagielski // Constructor that includes output-slot mapping list, used for non-contiguous lists: 2435*b1cdbd2cSJim Jagielski GlyphSetIterator(Segment & seg, size_t islout, RcVector * qvislout) 2436*b1cdbd2cSJim Jagielski- : m_pseg(&seg), m_vit(qvislout->Vector().begin() + islout) 2437*b1cdbd2cSJim Jagielski+ : m_pseg(&seg), m_vit(qvislout->Vector().begin()) 2438*b1cdbd2cSJim Jagielski { 2439*b1cdbd2cSJim Jagielski+ if( islout < qvislout->Vector().size()) 2440*b1cdbd2cSJim Jagielski+ m_vit += islout; 2441*b1cdbd2cSJim Jagielski+ else 2442*b1cdbd2cSJim Jagielski+ m_vit = qvislout->Vector().end(); 2443*b1cdbd2cSJim Jagielski m_qvislout = qvislout; 2444*b1cdbd2cSJim Jagielski m_qvislout->IncRefCount(); 2445*b1cdbd2cSJim Jagielski } 2446*b1cdbd2cSJim Jagielski@@ -289,7 +293,7 @@ 2447*b1cdbd2cSJim Jagielski 2448*b1cdbd2cSJim Jagielski // Relational operators. 2449*b1cdbd2cSJim Jagielski // Forward iterator requirements 2450*b1cdbd2cSJim Jagielski- bool operator==(const GlyphSetIterator & rhs) const throw() { return m_vit == rhs.m_vit; } 2451*b1cdbd2cSJim Jagielski+ bool operator==(const GlyphSetIterator & rhs) const throw() { return (m_qvislout == NULL) || (m_vit == rhs.m_vit); } 2452*b1cdbd2cSJim Jagielski bool operator!=(const GlyphSetIterator & rhs) const throw() { return !(*this == rhs); } 2453*b1cdbd2cSJim Jagielski 2454*b1cdbd2cSJim Jagielski // Random access iterator requirements 2455