73 Q_ASSERT(m_trueTypeExtension->HasTrueTypeTable(tag)); |
73 Q_ASSERT(m_trueTypeExtension->HasTrueTypeTable(tag)); |
74 TInt error = KErrNone; |
74 TInt error = KErrNone; |
75 TInt tableByteLength = 0; |
75 TInt tableByteLength = 0; |
76 TAny *table = q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength)); |
76 TAny *table = q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength)); |
77 QByteArray result(static_cast<const char*>(table), tableByteLength); |
77 QByteArray result(static_cast<const char*>(table), tableByteLength); |
|
78 m_trueTypeExtension->ReleaseTrueTypeTable(table); |
|
79 return result; |
|
80 } |
|
81 |
|
82 bool QFontEngineS60Extensions::getSfntTableData(uint tag, uchar *buffer, uint *length) const |
|
83 { |
|
84 if (!m_trueTypeExtension->HasTrueTypeTable(tag)) |
|
85 return false; |
|
86 |
|
87 bool result = true; |
|
88 TInt error = KErrNone; |
|
89 TInt tableByteLength; |
|
90 TAny *table = |
|
91 q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength)); |
|
92 |
|
93 if (error != KErrNone) { |
|
94 return false; |
|
95 } else if (*length > 0 && *length < tableByteLength) { |
|
96 result = false; // Caller did not allocate enough memory |
|
97 } else { |
|
98 *length = tableByteLength; |
|
99 if (buffer) |
|
100 qMemCopy(buffer, table, tableByteLength); |
|
101 } |
|
102 |
78 m_trueTypeExtension->ReleaseTrueTypeTable(table); |
103 m_trueTypeExtension->ReleaseTrueTypeTable(table); |
79 return result; |
104 return result; |
80 } |
105 } |
81 |
106 |
82 const unsigned char *QFontEngineS60Extensions::cmap() const |
107 const unsigned char *QFontEngineS60Extensions::cmap() const |
324 QByteArray QFontEngineS60::getSfntTable(uint tag) const |
349 QByteArray QFontEngineS60::getSfntTable(uint tag) const |
325 { |
350 { |
326 return m_extensions->getSfntTable(tag); |
351 return m_extensions->getSfntTable(tag); |
327 } |
352 } |
328 |
353 |
|
354 bool QFontEngineS60::getSfntTableData(uint tag, uchar *buffer, uint *length) const |
|
355 { |
|
356 return m_extensions->getSfntTableData(tag, buffer, length); |
|
357 } |
|
358 |
329 QFontEngine::Type QFontEngineS60::type() const |
359 QFontEngine::Type QFontEngineS60::type() const |
330 { |
360 { |
331 return QFontEngine::S60FontEngine; |
361 return QFontEngine::S60FontEngine; |
332 } |
362 } |
333 |
363 |