Hi
Falsch. Von wegen abgepalten! Lies dir mal die Buildinstructions unter http://www.mozilla.org/ports/fizzilla/ChimChim.html durch!
"Chimera is now being developed on its own branch"
Was so viel heisst wie dass die das jetzt selber weiterprogrammieren. Klar gehört es immer noch zum Mozz projekt.. Ist wird ja auch die Mozz engine verwendet aber programmieren tun die das separat von den anderen.
Im Gegensatz zu anderen Embedingprojekten ist Chimera beinahe integraler Bestandteil des Mozillaprojektes, ist auch im Mozilla-CVS-Repository zu finden. Und auch die Quartzunterstützung in der 1.1Alpha würde es ohne Chimera nicht geben.
Rofl.. also von OS X Programming weist Du nicht viel. Wer mag es Dir auch verdenken, denn ich glaube nicht Du programmierst in Cocoa oder für OS X.
Die Quarz drawing engine zu verwenden ist "pipifatz" da kommt ein klein wenig code rein den man braucht um Quarz fürs App zu aktivieren und schon läuft die sache. Sämtlichen text Drawing routinen verwenden dann Quarz.
Zudem sollte man für Carbon Applicationen noch nen check reintun ob OS X 10.1.5 installiert ist, da ansonsten Quarz drawing nicht verfügbar ist und das laden des Framework nen crash verursacht.
so schauts aus.. viel ists ja wirklich nicht ^^:
static OSStatus LoadFrameworkBundle
(
CFStringRef inFrameworkName,
CFBundleRef * outBundleRef
)
{
FSRef frameworksFolderRef ;
CFURLRef baseURL = NULL ;
CFURLRef bundleURL = NULL ;
OSStatus err ;
/* sanity check: make sure outBundleRef is nonzero */
if ( ! outBundleRef )
{
return paramErr ;
}
* outBundleRef = NULL ;
/* find the Frameworks folder */
if ( ( err = FSFindFolder ( kOnAppropriateDisk, kFrameworksFolderType, kDontCreateFolder, & frameworksFolderRef ) ) != noErr )
{
goto cleanup ;
}
/* convert the FSRef into a URL */
err = coreFoundationUnknownErr ;
if ( ( baseURL = CFURLCreateFromFSRef ( kCFAllocatorSystemDefault, & frameworksFolderRef ) ) == NULL )
{
goto cleanup ;
}
/* append the name of the framework to the base URL */
if ( ( bundleURL = CFURLCreateCopyAppendingPathComponent ( kCFAllocatorSystemDefault, baseURL, inFrameworkName, false ) ) == NULL )
{
goto cleanup ;
}
/* create a bundle based on that URL */
if ( ( * outBundleRef = CFBundleCreate ( kCFAllocatorSystemDefault, bundleURL ) ) == NULL )
{
goto cleanup ;
}
/* load the bundle */
if ( ! CFBundleLoadExecutable ( * outBundleRef ) )
{
goto cleanup ;
}
/* clear result code */
err = noErr ;
cleanup :
/* clean up */
if ( err != noErr )
{
if ( * outBundleRef )
{
CFRelease ( * outBundleRef ) ;
* outBundleRef = NULL ;
}
}
if ( bundleURL )
{
CFRelease ( bundleURL ) ;
bundleURL = NULL ;
}
if ( baseURL )
{
CFRelease ( baseURL ) ;
baseURL = NULL ;
}
/* return result code */
return err ;
}
static OSStatus EnableQuartzAntiAliasing ( void )
{
typedef UInt32 ( * SwapQDTextFlagsProcPtr ) ( UInt32 ) ;
enum
{
kQDUseTrueTypeScalerGlyphs = (1 << 0),
kQDUseCGTextRendering = (1 << 1),
kQDUseCGTextMetrics = (1 << 2)
} ;
SwapQDTextFlagsProcPtr functionPtr ;
CFBundleRef bundleRef = NULL ;
OSStatus err ;
/* load the ApplicationServices framework */
if ( ( err = LoadFrameworkBundle ( CFSTR ( "ApplicationServices.framework" ), & bundleRef ) ) != noErr )
{
goto cleanup ;
}
/* get a pointer to the SwapQDTextFlags function */
err = coreFoundationUnknownErr ;
if ( ( functionPtr = ( SwapQDTextFlagsProcPtr ) CFBundleGetFunctionPointerForName ( bundleRef, CFSTR ( "SwapQDTextFlags" ) ) ) == NULL )
{
goto cleanup ;
}
/* enable Quartz text rendering */
functionPtr ( kQDUseTrueTypeScalerGlyphs | kQDUseCGTextRendering | kQDUseCGTextMetrics ) ;
/* clear result code */
err = noErr ;
cleanup :
/* return result code */
return err ;
}
Gruß Herbalizer
Gruss Christoph