summaryrefslogtreecommitdiff
authorsandman <sandman>2002-10-22 18:58:52 (UTC)
committer sandman <sandman>2002-10-22 18:58:52 (UTC)
commit3f8157f49267d07a8e3263fedeb4da32ddbc951e (patch) (side-by-side diff)
treeab9e8bac8f0484339f48294709d3eb9288d5783e
parentd7cca919f20d602bd755b7690c25e31f6e9520b1 (diff)
downloadopie-3f8157f49267d07a8e3263fedeb4da32ddbc951e.zip
opie-3f8157f49267d07a8e3263fedeb4da32ddbc951e.tar.gz
opie-3f8157f49267d07a8e3263fedeb4da32ddbc951e.tar.bz2
*** empty log message ***
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--freetype/fontfactoryttf_qws.cpp19
-rw-r--r--freetype/fontfactoryttf_qws.h3
-rw-r--r--freetype/freetype.pro2
-rw-r--r--freetype/freetypefactoryimpl.cpp2
-rw-r--r--freetype/opie-freetype.control2
5 files changed, 17 insertions, 11 deletions
diff --git a/freetype/fontfactoryttf_qws.cpp b/freetype/fontfactoryttf_qws.cpp
index 5aa53fb..1f082a9 100644
--- a/freetype/fontfactoryttf_qws.cpp
+++ b/freetype/fontfactoryttf_qws.cpp
@@ -28,21 +28,20 @@
#include <stdio.h>
#define FLOOR(x) ((x) & -64)
#define CEIL(x) (((x)+63) & -64)
#define TRUNC(x) ((x) >> 6)
extern "C" {
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_GLYPH_H
-#include FT_OUTLINE_H
-#include FT_BBOX_H
+#include <freetype/freetype.h>
+#include <freetype/ftglyph.h>
+#include <freetype/ftoutln.h>
+#include <freetype/ftbbox.h>
}
class QDiskFontFT : public QDiskFontPrivate {
public:
FT_Face face;
};
class QRenderedFontFT : public QRenderedFont {
@@ -64,16 +63,18 @@ public:
// FT has these in font units
funderlinepos = ptsize/200+1;
funderlinewidth = ptsize/200+1;
}
~QRenderedFontFT()
{
+ // When inter-process glyph sharing is implemented, the glyph data
+ // for this font can be dereferenced here.
}
bool unicode(int & i) const
{
int ret;
FT_Face theface=myface;
@@ -103,17 +104,17 @@ public:
QGlyph result;
FT_Error err;
err=FT_Load_Glyph(myface,index,FT_LOAD_DEFAULT);
if(err)
qFatal("Load glyph error %x",err);
- int width,height,pitch,size = 0;
+ int width=0,height=0,pitch=0,size=0;
FT_Glyph glyph;
err=FT_Get_Glyph( myface->glyph, &glyph );
if(err)
qFatal("Get glyph error %x",err);
FT_BBox bbox;
FT_Glyph_Get_CBox(glyph, ft_glyph_bbox_gridfit, &bbox);
@@ -150,16 +151,22 @@ public:
result.metrics->bearingx=myface->glyph->metrics.horiBearingX/64;
result.metrics->advance=myface->glyph->metrics.horiAdvance/64;
result.metrics->bearingy=myface->glyph->metrics.horiBearingY/64;
result.metrics->linestep=pitch;
result.metrics->width=width;
result.metrics->height=height;
+ // XXX memory manage me
+ // At some point inter-process glyph data sharing must be implemented
+ // and the flag below can be set to prevent Qt from deleting the glyph
+ // data.
+ // result.metrics->flags = QGlyphMetrics::RendererOwnsData;
+
FT_Done_Glyph( glyph );
return result;
}
FT_Face myface;
private:
diff --git a/freetype/fontfactoryttf_qws.h b/freetype/fontfactoryttf_qws.h
index 4ba8ce5..208ab61 100644
--- a/freetype/fontfactoryttf_qws.h
+++ b/freetype/fontfactoryttf_qws.h
@@ -28,18 +28,17 @@
#else
# include "qfontdata_p.h"
#endif
#ifdef QT_NO_FREETYPE
extern "C" {
-#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
}
// ascent, descent, width(ch), width(string), maxwidth?
// leftbearing, rightbearing, minleftbearing,minrightbearing
// leading
class QFontFactoryFT : public QFontFactory {
diff --git a/freetype/freetype.pro b/freetype/freetype.pro
index 5800b48..ca7edd3 100644
--- a/freetype/freetype.pro
+++ b/freetype/freetype.pro
@@ -1,11 +1,11 @@
TEMPLATE = lib
CONFIG += qt warn_on release
HEADERS = fontfactoryttf_qws.h freetypefactoryimpl.h
SOURCES = fontfactoryttf_qws.cpp freetypefactoryimpl.cpp
qt2:HEADERS += qfontdata_p.h
TARGET = freetypefactory
DESTDIR = $(OPIEDIR)/plugins/fontfactories
-INCLUDEPATH += $(OPIEDIR)/include
+INCLUDEPATH += $(QTDIR)/src/3rdparty/freetype/include $(QTDIR)/src/3rdparty/freetype/include/freetype/config $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
LIBS += -lqpe -lfreetype
VERSION = 1.0.0
diff --git a/freetype/freetypefactoryimpl.cpp b/freetype/freetypefactoryimpl.cpp
index 71460b2..24fb13a 100644
--- a/freetype/freetypefactoryimpl.cpp
+++ b/freetype/freetypefactoryimpl.cpp
@@ -43,15 +43,15 @@ QRESULT FreeTypeFactoryImpl::queryInterface( const QUuid &uuid, QUnknownInterfac
*iface = 0;
if ( uuid == IID_QUnknown )
*iface = this;
else if ( uuid == IID_FontFactory )
*iface = this;
if ( *iface )
(*iface)->addRef();
- return QS_OK;
+ return (*iface) ? QS_OK : QS_FALSE;
}
Q_EXPORT_INTERFACE()
{
Q_CREATE_INSTANCE( FreeTypeFactoryImpl )
}
diff --git a/freetype/opie-freetype.control b/freetype/opie-freetype.control
index f1ce408..2863adb 100644
--- a/freetype/opie-freetype.control
+++ b/freetype/opie-freetype.control
@@ -1,8 +1,8 @@
Files: plugins/fontfactories/libfreetypefactory*
Priority: optional
Section: opie/plugins
Maintainer: Opie <opie@llornkcor.com>
Architecture: arm
Version: $QPE_VERSION-$SUB_VERSION
-Depends: opie-base ($QPE_VERSION)
+Depends: opie-base ($QPE_VERSION), libfreetype6
Description: Freetype fontfactory plugin