Who's Online |
272 user(s) are online ( 159 user(s) are browsing Forums)
Members: 1
Guests: 271
LiveForIt,
more...
|
|
Headlines |
-
fr-025_popular.lha - demo/scene
Oct 9, 2026
-
amelinium.lha - network/browser
Oct 9, 2026
-
aveterna.lha - game/strategy
Oct 8, 2026
-
amigagpt.lha - network/chat
Oct 8, 2026
-
telegramamiga.lha - network/chat
Oct 7, 2026
-
amiarcadia.lha - emulation/gamesystem
Oct 6, 2026
-
edgesnap.lha - utility/workbench
Oct 6, 2026
-
thumbnail_maker_amiga.lha - video/misc
Oct 6, 2026
-
codewar.lha - game/misc
Oct 4, 2026
-
odfilesystem.lha - driver/filesystem
Oct 1, 2026
|
|
|
|
|
Re: New modern Webrowser Quasar
|
|
Home away from home 
|
@Georg
I think there i some memory to be saved if AmigaOS had a global font cache, but that's is different angle.. how many programs use the same font.. how many times is duplicated in memory.
|
|
(NutsAboutAmiga)
Basilisk II for AmigaOS4 AmigaInputAnywhere Excalibur and other tools and apps.
|
|
|
|
Re: New modern Webrowser Quasar
|
|
Just popping in 
|
@joergQuote:
I implemented AmigaOS 4.x native font rendering in OWB nearly 20 years ago already and it was at least 10 times faster than using libfreetype2.
I'm not sure what you mean with native font rendering. But you still used freetype2 because the ~native AOS4 font engine (bullet "standard") "ft2.library" is using freetype2. So freetype2 is used either way, either directly by app or indirectly through AOS font engine. Quote: All of it open source of course, in Pleyo's OWB SVN. I have looked on old HD and I have some owb-1.9-src.tar.bz2 lying around. 25317487 bytes big.
. 4815 2010-08-14 17:36 owb-1.9-src/BAL/Fonts/WebCore/AmigaOS4/BCGlyphPageTreeNodeAmigaOS4.cpp
17026 2010-08-14 17:36 owb-1.9-src/BAL/Fonts/WebCore/AmigaOS4/BCFontPlatformDataAmigaOS4.cpp
10595 2010-08-14 17:36 owb-1.9-src/BAL/Fonts/WebCore/AmigaOS4/BCSimpleFontDataAmigaOS4.cpp
4861 2010-08-14 17:36 owb-1.9-src/BAL/Fonts/WebCore/AmigaOS4/BCSimpleFontDataAmigaOS4.h
4138 2010-08-14 17:36 owb-1.9-src/BAL/Fonts/WebCore/AmigaOS4/BCFontCacheAmigaOS4.cpp
2527 2010-08-14 17:36 owb-1.9-src/BAL/Fonts/WebCore/AmigaOS4/BCFontCustomPlatformDataAmigaOS4.cpp
3691 2010-08-14 17:36 owb-1.9-src/BAL/Fonts/WebCore/AmigaOS4/BCGlyphBufferAmigaOS4.h
10269 2010-08-14 17:36 owb-1.9-src/BAL/Fonts/WebCore/AmigaOS4/BCFontAmigaOS4.cpp
2152 2010-08-14 17:36 owb-1.9-src/BAL/Fonts/WebCore/AmigaOS4/BCFontCustomPlatformDataAmigaOS4.h
3044 2010-08-14 17:36 owb-1.9-src/BAL/Fonts/WebCore/AmigaOS4/BCFontPlatformDataAmigaOS4.h
static void drawglyphs(GraphicsContext* context, const SimpleFontData* font, const GlyphBuffer& glyphBuffer,
int from, int numGlyphs, const FloatPoint& point, float height, float ascent,
uint32 penalpha, uint32 penr, uint32 peng, uint32 penb, int shadowx, int shadowy)
{
GlyphBufferGlyph* glyphs = const_cast<GlyphBufferGlyph*>(glyphBuffer.glyphs(from));
struct OutlineFont *face = font->m_platformData.m_face;
uint32 ysize = font->m_platformData.m_size;
int32 imagewidth = 0;
uint32 onlyspaces = TRUE;
for (int i = 0; i < numGlyphs; i++) {
if (32 != glyphs[i])
onlyspaces = FALSE;
imagewidth += glyphBuffer.advanceAt(from + i);
}
if (onlyspaces)
return;
if (imagewidth <= 0)
return;
imagewidth += 2 * (ysize * amigaConfig.fontXDPI / 72);
Vector<unsigned> *glyphRGBABuffer = new Vector<unsigned>(imagewidth * height);
if (!glyphRGBABuffer)
return;
glyphRGBABuffer->fill(0);
int32 offsetinimg = 0;
uint32 shiftleft = 0;
for (int i = 0; i < numGlyphs; i++) {
if (32 == glyphs[i]) {
offsetinimg += glyphBuffer.advanceAt(from + i);
continue;
}
struct GlyphMap *glyph;
if (IDiskfont->ESetInfo(&face->olf_EEngine,
OT_GlyphCode, glyphs[i],
TAG_END))
continue; //do not handle error
struct OutlineFont *curface = face;
if (IDiskfont->EObtainInfo(&face->olf_EEngine,
OT_GlyphMap8Bit, &glyph,
TAG_END)) {
uint32 ok = FALSE;
if (amigaConfig.unicodeFace
&& !IDiskfont->ESetInfo(&amigaConfig.unicodeFace->olf_EEngine,
OT_PointHeight, ysize << 16,
OT_GlyphCode, glyphs[i],
TAG_END)
&& !IDiskfont->EObtainInfo(&amigaConfig.unicodeFace->olf_EEngine,
OT_GlyphMap8Bit, &glyph,
TAG_END)) {
curface = amigaConfig.unicodeFace;
ok = TRUE;
}
if (!ok
&& !IDiskfont->ESetInfo(&face->olf_EEngine,
OT_GlyphCode, 0xFFFD,
TAG_END)
&& !IDiskfont->EObtainInfo(&face->olf_EEngine,
OT_GlyphMap8Bit, &glyph,
TAG_END))
ok = TRUE;
if (!ok
&& !IDiskfont->ESetInfo(&face->olf_EEngine,
OT_GlyphCode, '?',
TAG_END)
&& !IDiskfont->EObtainInfo(&face->olf_EEngine,
OT_GlyphMap8Bit, &glyph,
TAG_END))
ok = TRUE;
if (!ok)
continue; //do not handle error
}
if (amigaConfig.fontKerning && i > 0)
if (!IDiskfont->ESetInfo(&curface->olf_EEngine,
OT_GlyphCode, glyphs[i -1],
OT_GlyphCode2, glyphs[i],
TAG_END)) {
FIXED kern = 0;
if (!IDiskfont->EObtainInfo(&curface->olf_EEngine,
OT_TextKernPair, &kern,
TAG_END))
if (kern)
offsetinimg -= (int)(kern / 65536.0 * ysize * amigaConfig.fontYDPI / 72);
}
uint32 left = glyph->glm_BlackLeft;
uint32 top = glyph->glm_BlackTop;
int32 width = glyph->glm_BlackWidth;
int32 gheight = glyph->glm_BlackHeight;
int32 x0 = glyph->glm_X0;
int32 y0 = glyph->glm_Y0;
uint32 modulo = glyph->glm_BMModulo;
int32 imgoffsetx = -x0 + left;
if (offsetinimg + imgoffsetx < 0) {
if (0 == i) {
shiftleft = -imgoffsetx;
if (shiftleft > ysize) {
shiftleft = ysize;
imgoffsetx = -ysize;
}
offsetinimg = shiftleft;
}
else
imgoffsetx = 0;
}
int32 imgoffsety = ascent - y0 + top;
if (imgoffsety < 0)
imgoffsety = 0;
if (offsetinimg + imgoffsetx + width > imagewidth) {
int32 signedwidth = imagewidth - offsetinimg - imgoffsetx;
if (signedwidth < 0)
signedwidth = 0;
width = signedwidth;
}
if (imgoffsety + gheight > (int)height)
gheight = height - imgoffsety;
for (int32 y = 0; y < gheight ; y++) {
uint32 top_mod_left = (y + top) * modulo + left;
for (int32 x = 0; x < width; x++)
if ((offsetinimg + imgoffsetx + x < imagewidth)
&& (offsetinimg + imgoffsetx + x >= 0)) {
uint32 a = penalpha * glyph->glm_BitMap[top_mod_left + x] / 255;
if (a) {
uint32 oldARGB = (*glyphRGBABuffer)[(imgoffsety + y) * imagewidth + offsetinimg + imgoffsetx + x];
if (oldARGB)
a = std::max((oldARGB >> 24), a);
(*glyphRGBABuffer)[(imgoffsety + y) * imagewidth + offsetinimg + imgoffsetx + x] = (a << 24) | ((penr * a / 255) << 16) | ((peng * a / 255) << 8) | (penb * a / 255);
}
}
}
offsetinimg += glyphBuffer.advanceAt(from + i);
IDiskfont->EReleaseInfo(&curface->olf_EEngine, OT_GlyphMap8Bit, glyph, TAG_END);
}
cairo_surface_t *surface = cairo_image_surface_create_for_data((unsigned char *)glyphRGBABuffer->data(), CAIRO_FORMAT_ARGB32, imagewidth, height, imagewidth * 4);
if (surface) {
cairo_t* cr = context->platformContext();
cairo_set_source_surface(cr, surface, point.x() - shiftleft + shadowx, point.y() - ascent + shadowy);
cairo_paint(cr);
cairo_surface_destroy(surface);
}
delete glyphRGBABuffer;
}
|
|
|
|
|
|
Re: 2026 October-Gaming Competition-Balance Blox by EntwicklerX !
|
|
Home away from home 
|
@emeck I have to pick up my game to keep up with you guys 
|
_______________________________ c64-dual sids, A1000, A1200-060@93, A4000-CSMKIII PiStorm32 & Catweasel MK4+= Amazing ! My Master Miggies-Amiga1000 & AmigaONE X1000 ! mancave-ramblings
|
|
|
|
Re: New modern Webrowser Quasar
|
Posted on: Yesterday 22:38
#4
|
Quite a regular 
|
Hello guys!
I´m in my not Mclaren timemachine or am I ?
|
|
1989-> A500, A600, A3000, A4000, A1200, CD32, µA1, PegII, A1XE, CDTV, Amy/416D79, A1X5000, Vampire 500 V2+, Vampire 600 V2, Amy-ITX, Denise ITX, Apollo V4SA, A1X5000/40 <-2026
|
|
|
|
Re: New modern Webrowser Quasar
|
Posted on: Yesterday 22:08
#5
|
Amigans Defender 
|
Plus diskfont/ft2 has a lot of other s**t that I could explain but I prefer to avoid..
|
i'm really tired...
|
|
|
|
Re: Demos of the Week: Shaders on Mesa
|
Posted on: Yesterday 21:34
#6
|
Quite a regular 
|
@kas1e
Lifeforce dont work well with resolutions over 1920x1080 sadly, distorded right hand side.
|
|
1989-> A500, A600, A3000, A4000, A1200, CD32, µA1, PegII, A1XE, CDTV, Amy/416D79, A1X5000, Vampire 500 V2+, Vampire 600 V2, Amy-ITX, Denise ITX, Apollo V4SA, A1X5000/40 <-2026
|
|
|
|
Re: Demos of the Week: Shaders on Mesa
|
Posted on: Yesterday 20:42
#7
|
Just can't stay away 
|
Awesome release! Never thought I would see any OS4 program running at >100fps! Stunning.
|
|
|
|
|
|
Re: New modern Webrowser Quasar
|
Posted on: Yesterday 20:30
#8
|
Just can't stay away 
|
@joergQuote: joerg wrote:@Maijestro Quote:Fonts via fontconfig, PROGDIR:Fonts/WkSans.ttf, plus SYS:Fonts I guess libfreetype + fontconfig? Why? 
I implemented AmigaOS 4.x native font rendering in OWB nearly 20 years ago already and it was at least 10 times faster than using libfreetype2. All of it open source of course, in Pleyo's OWB SVN. Yes: libfreetype + fontconfig + HarfBuzz + Cairo. That is the WebKit 2.50 text stack (same family as WebKitGTK), not a random extra. Your OWB diskfont path was the right call for that engine. Quasar is not that WebKit. Layout, CSS, @font-face, WOFF/OTF, and complex scripts all go through FontPlatformData/FreeType and HarfBuzz. Page text is UTF-16 inside the engine; glyphs come from the TTF Unicode cmap. AmigaOS codesets / diskfont.library cannot be that backend without rewriting the font cache, glyph pages, and shaper. Speed: diskfont can beat FreeType on a handful of Latin UI glyphs. A modern page is not that. Glyphs are cached; the cost is layout and script, not Bullet vs FT per letter. We still ship PROGDIR:Fonts/WkSans.ttf so it runs without a tuned SYS:Fonts set. fontconfig can index extra TTFs under PROGDIR (and SYS:Fonts when they are real TTF), it does not draw through diskfont. So: native OS4 fonts stay a possible fallback for chrome later. They are not a drop-in replacement for the 2.50 web text path. I did look at the old OWB sources — different problem.
|
|
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne x5000/40 AmigaOs4.1 FE
|
|
|
|
Re: Vote/suggestions for the software and game reimplementations
|
Posted on: Yesterday 20:15
#9
|
Just can't stay away 
|
If I could wish for one game on AmigaOS 4.1, it would be Wing Commander Saga: The Darkest Dawn.
It is a finished Wing Commander story, and it already runs on the open-source FreeSpace Open engine. That engine is cross-platform C++ and uses the usual pieces AmigaOS 4.1 already has: SDL, OpenGL, and OpenAL. So this is a port of an existing engine, not a rewrite of the game. I would love to see it fly on AmigaOS 4.1.
|
|
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne x5000/40 AmigaOs4.1 FE
|
|
|
|
Re: Vote/suggestions for the software and game reimplementations
|
Posted on: Yesterday 20:08
#10
|
Quite a regular 
|
And if someone have worked on an Amiga flightsim all these years! Time to show off !
|
|
1989-> A500, A600, A3000, A4000, A1200, CD32, µA1, PegII, A1XE, CDTV, Amy/416D79, A1X5000, Vampire 500 V2+, Vampire 600 V2, Amy-ITX, Denise ITX, Apollo V4SA, A1X5000/40 <-2026
|
|
|
|
Re: Vote/suggestions for the software and game reimplementations
|
Posted on: Yesterday 19:44
#11
|
Just popping in 
|
Yes, @khayoz, I agree – BRING IT BACK!!! There are so many good flight simulators that would be a welcome addition to our PPC machines :D
|
|
|
|
|
|
Re: Demos of the Week: Shaders on Mesa
|
Posted on: Yesterday 19:34
#12
|
Just popping in 
|
Amazing job @Kas1e! That’s unbelievable :D
|
|
|
|
|
|
Re: 2026 October-Gaming Competition-Balance Blox by EntwicklerX !
|
Posted on: Yesterday 18:08
#13
|
Just popping in 
|
@328gts @BillE This is getting tight! Next base: 30030 
|
|
A1222 Tabor AOS4.1 FE Update 3
|
|
|
|
Re: Demos of the Week: Shaders on Mesa
|
Posted on: Yesterday 17:42
#14
|
Home away from home 
|
damn great demo’s for our PPC miggies 
|
_______________________________ c64-dual sids, A1000, A1200-060@93, A4000-CSMKIII PiStorm32 & Catweasel MK4+= Amazing ! My Master Miggies-Amiga1000 & AmigaONE X1000 ! mancave-ramblings
|
|
|
|
Re: 2026 October-Gaming Competition-Balance Blox by EntwicklerX !
|
Posted on: Yesterday 17:34
#15
|
Home away from home 
|
@BillE  what system you playing on?
|
_______________________________ c64-dual sids, A1000, A1200-060@93, A4000-CSMKIII PiStorm32 & Catweasel MK4+= Amazing ! My Master Miggies-Amiga1000 & AmigaONE X1000 ! mancave-ramblings
|
|
|
|
Re: Vote/suggestions for the software and game reimplementations
|
Posted on: Yesterday 16:52
#16
|
Not too shy to talk 
|
|
|
|
|
|
|
Re: Vote/suggestions for the software and game reimplementations
|
Posted on: Yesterday 16:45
#17
|
Just can't stay away 
|
@joerg I'm using (new) sii3132sata.device from Acube ( https://www.acube-systems.biz/download ... =sii3132sata_dev_v1.2.lha) when using with CDFS v53.11 I get in BURN IMAGE "CD0: HL-DF-ST DVDRAM...." in Drive chooser and can burn CD/DVD. But when using ODFileSystem (or beta CDFS v55) in Drive chooser I have a blank entry and can't burn CD/DVD. So seems AmiDVD uses CDFS for something. Does AmiDVD has some debug option?
|
|
|
|
|
|
Re: New modern Webrowser Quasar
|
Posted on: Yesterday 16:12
#18
|
Home away from home 
|
@Maijestro
Wow. Looking good. This is a needed product for OS4.
|
|
X5000
|
|
|
|
Re: Vote/suggestions for the software and game reimplementations
|
Posted on: Yesterday 15:57
#19
|
Home away from home 
|
@jabirulo Quote: For "resource" I mean CDFilesystem kicklayout/handler.
Usikng AmiDVD 1.54 ( 9-10-2023) licenced to A-EON Technology Ltd
With ODFileSystem from os4depot/github and in BURN IMAGE I get an empty "Drive" chooser, so don't know how you get/fill that list, but with ODFilesystem (works fine under OS4, can read many CD/DVD formats) it doesn't show any "CDx: blah blah" entry on "Drive" chooser. I never used ODFileSystemm, but AmiDVD may depend on the CD/DVD/BlueRay file system using DOSType "CD01" (shortcut for "CD001", which is the official ISO 9660 FS identifier, but AmigaOS DOSTypes are limited to 32 bits, 4 chars). All AmigaOS CDFileSystems I know of, the commodore CDTV/CD³² based ones, as well as any 3rd party ones like CacheCDFS (incl. the AmigaOS 3.9 version), AmiCDROM, AmiCDFS, AsimCDFS, BabelCDFS, etc., are IIRC all using the same DOSType "CD01". If it's not related to that: Which PATA/SATA/SCSI/etc. device driver are you using? An incompletely implemented one could cause problems as well. I only tested, or had beta testers testing it for me, AmiDVD with sg2's PATA/SATA/SCSI drivers (a1ide.device, peg2ide.device, sii0680ide.device, sii3112ide.device, sii3114ide.device, sii3512ide.device, lsi53c8xx.device, etc.) and Ignatio's NetBSD based SCSI driver (cbyppc.device).
|
|
|
|
|
|
Re: New modern Webrowser Quasar
|
Posted on: Yesterday 14:57
#20
|
Home away from home 
|
@samo79 Quote: Yeah, fonts on your old Origyn Web Browser had also a nicer look, where we can found the source? All of my AmigaOS 4.x parts were on the Pleyo OWB SVN. That doesn't exist since several years anymore, but the author of the AROS OWB port who, unlike the MorphOS OWB developer, uploaded all of his changes to the Pleyo SVN as well may still have a copy of those sources. I don't have the complete OWB sources anymore, all I have on backups are diffs of my latest changes to the OWN SVN, and the sources of my AmigaOS 3.9/m68k port which doesn't include the AmigaOS 4.x-only AmigaOS native font rendering functions: The bullet.library from AGFA Compugraphic used in AmigaOS 2.1-3.9 was way too limited compared to Detlef's AmigaOS 4.x outline font engine.
|
|
|
|
|