Autor Thema: NetSurf GEM - erste Bilder  (Gelesen 34440 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline m0n0

  • Benutzer
  • Beiträge: 984
NetSurf GEM - erste Bilder
« am: Do 14.10.2010, 15:26:14 »
Hallo,

ich weiss es sieht noch längst nicht so schön aus wie bei der Framebuffer version -  aber ich bin ungeduldig und ich wollte euch trotzdem an meinen Entwicklungs-Tätigkeiten am GEM port von NetSurf teil nehmen lassen :)

Gerendert werden die Webseiten bisher nur mit einem VDI Renderer, d.h. nur 256 Farben (bzw. 216 - die WebSichere Palette), nur Systemfonts, und der Inhalt muss immer neu gerendert werden sobald ein vorher verdeckter Bereich sichtbar wird ( mangels fehlender Offscreen bitmaps im Standard VDI - auf NVDI möchte ich ja verzichten!) .

Hauptsächlich wurde dieser Renderer dafür gemacht mich bei der Entwicklung zu unterstützen, also
ich kann Kontrollieren ob mein Scrolling code, update von Fenster Bereichen, Textausgabe etc. korrekt
funktioniert. Aber es kann später auch mal als Fallback Lösung genutzt werden wenn die Direkten
Renderer die vorhandene Hardware nicht unterstützen.

Hier zwei screenshots:


Ein Directory Listing wird dargestellt



Mehrere Fenster und resize ist natürlich möglich.


FOlgendes steht momentan auf meiner TODO Liste:
- Frames implementieren
- Direkte Renderer implementieren
- Bookmarks
- Besserer SSL Dialog
- Text innerhalb webseite Suchen / Copy und Paste

Ich habe die nächsten 2 Wochen noch Zeit, danach muss dieses Projekt zurückstecken, aber ich hoffe trotzdem das ich bis zur Auslieferung der Firebee eine Version habe die eigentlich nur noch für die Firebee angepasst werden muss... mal schauen ob das was wird.

Offline Atari060

  • Benutzer
  • Beiträge: 2.358
  • Atari !!!
Re: NetSurf GEM - erste Bilder
« Antwort #1 am: Do 14.10.2010, 15:33:00 »
Das sieht ja schonmal SEHR vielversprechend aus!

TOLLE ARBEIT DIE DU DA MACHST!

 :) :) :)
Atari Falcon060

Offline Arthur

  • Benutzer
  • Beiträge: 10.311
  • Mein Atari erinnert mich an die gute alte Zeit..
Re: NetSurf GEM - erste Bilder
« Antwort #2 am: Do 14.10.2010, 17:03:30 »
Hallo M0n0,

eine tolle Idee und kaum zu glauben mit was für Sprüngen Du immer voran schreitest. Noch ein paar Fragen zu deiner todo Liste:

1. Konnte NSFB nicht schon mit Frames umgehen oder verwechsele ich da was?
2. Was meinst Du mit "Direkte Renderer implementieren"?
3. Und was hällst Du von Tab's, die sind ja mittlerweile sehr beliebt und sehr praktisch allerdings auf den Ataris vielleicht schwer zu realisieren?

Ich schließe mich Atari060 an...einen tollen Job machst du da.



FOlgendes steht momentan auf meiner TODO Liste:
- Frames implementieren
- Direkte Renderer implementieren
- Bookmarks
- Besserer SSL Dialog
- Text innerhalb webseite Suchen / Copy und Paste


Gruß Arthur

Offline m0n0

  • Benutzer
  • Beiträge: 984
Re: NetSurf GEM - erste Bilder
« Antwort #3 am: Do 14.10.2010, 18:51:29 »
Hallo M0n0,

eine tolle Idee und kaum zu glauben mit was für Sprüngen Du immer voran schreitest. Noch ein paar Fragen zu deiner todo Liste:

1. Konnte NSFB nicht schon mit Frames umgehen oder verwechsele ich da was?
2. Was meinst Du mit "Direkte Renderer implementieren"?
3. Und was hällst Du von Tab's, die sind ja mittlerweile sehr beliebt und sehr praktisch allerdings auf den Ataris vielleicht schwer zu realisieren?


1. Die erste Alpha vom Framebuffer Port konnte, meine ich, noch mit Frames umgehen...
Nun ist es aber so das der Frame Code im NetSurf umgeschrieben wird, so das Momentan jede
Entwicklerversion keine Unterstuetzung von Frames bietet, soweit ich das Verstanden habe und
sofern der Port keine besonderen Massnahmen ergreift...
Von daher stellt sich auch die Frage ob es Sinn macht nun Frames zu implementieren...
denn spaeter soll das alles vom Kern gehandelt werden, so
das sich die Eigentliche GUI nicht darum kuemmern muss... was
natuerlich auch bedeutet das keine Nativen-Scrollbars zu sehen
sein werden, sondernd die vom Core selbst gezeichneten. Also erstmal abwarten.

2. Direkte Renderer: Anstatt VDI funktionen wie circle oder
rectangle aufzurufen muessen diese Formen durch eigenen Code
in den Bildschirmspeicher geschrieben werden, was aufgrund der
Vielzahl von Bildschirmspeicherformaten nicht ganz Trivial ist.
Und man muss natuerlich wissen wie man einen Kreis per Code
zeichnen kann, also ohne VDI... Ich werde fuer die Konvertierung
in verschiedene Formate die Hermes Library nutzen... Aber es wird
auch kein Problem sein neue Formate hinzuzufuegen, diejenigen die von Hermes
nicht unterstuetzt werden oder assembler optimierte routinen, das heisst aber natuerlich zusaetzlichen
Programmieraufwand...

3. Tabs habe ich erstmal aussen vor gelassen. Es ist nicht so das
der Weg dorthin verbaut ist, aber ich kuemmere mich erstmal
nicht darum. Kommt vielleicht spaeter :) aber es ist halt auch
so das jedes Fenster seinen Speicher benoetigt, tabs verleiten
ja dazu das man viele Seiten offen hat, und auch jeder Tab
benoetigt seinen Bildschirmspeicher...

Gruss,
m

Offline tost40

  • Benutzer
  • Beiträge: 862
  • Firebee Nr. 12 ich bin dabei!
Re: NetSurf GEM - erste Bilder
« Antwort #4 am: Do 14.10.2010, 20:50:45 »
Hallo m0n0,

klasse Arbeit!!! :D

Gruss Martin
Firebee,
Medusa T40,
Milan 060,
1040 STE, Monster, NetUSB, Unicorn

Offline caesar

  • Benutzer
  • Beiträge: 207
Re: NetSurf GEM - erste Bilder
« Antwort #5 am: Do 14.10.2010, 22:57:10 »
Das ist ja mal was Interessantes! Ich benutze NetSurf auf meinem Acorn seit langem und bin mit dem Leistungsumfang ganz zufrieden. Bin gespannt, wie es weitergeht mit der GEM Implementation.
Hades060, Milan040, TT030, Falcon, MegaSTE, Mega ST4, iMac, Powermac, PowerBook, Amiga 4000, Acorn StrongARM

Offline Heinz Schmidt

  • Benutzer
  • Beiträge: 1.268
  • Atari, Linux, OS/2, MacOS, ... no need for Windows
Re: NetSurf GEM - erste Bilder
« Antwort #6 am: Fr 15.10.2010, 15:10:17 »
Wow, ich bin total platt was Du so schnell auf die Beine stellst. Schreibst Du das GUI eigentlich komplett neu, oder kannst Du z.B. von HighWire noch Code verwenden?

Gruß Heinz
FireBee #8 -- Milan 060/50, Ethernet, CF/SD-CardReader, DVD-RW, ATI Grafik -- Falcon CT63/CTPCI/ATI, CF-Card als HDD, Altec iDrive -- 1040 STE TwiSTEr -- ...

gstoll

  • Gast
Re: NetSurf GEM - erste Bilder
« Antwort #7 am: Fr 15.10.2010, 18:02:19 »
mangels fehlender Offscreen bitmaps im Standard VDI - auf NVDI möchte ich ja verzichten!
Mit Offscreen bitmaps, meinst Du wahrscheinlich alle Funktion die vorhanden sind falls der Cookie EdDI da ist? Also dafür gibt es extra Zusatzprogramm um die Funktionen auch ohne NVDI zur Verfügung zu stellen.

Einzig möglicher Nachteil: Mir ist i.M. nur bekannt, daß die Versionsnummer 1.00 unterstützt wird.

Gerhard

Offline m0n0

  • Benutzer
  • Beiträge: 984
Re: NetSurf GEM - erste Bilder
« Antwort #8 am: Fr 15.10.2010, 20:58:02 »
Hallo Gerhard,

das klingt natürlich sehr Interessant! ( Das wäre doch auch evt. um GemDict ohne NVDI laufen zu lassen, oder? :) )

Aber ich glaube letztendlich ist es besser eigene Routinen dafür zu verwenden anstatt auf die VDI Funktionen zurückzugreifen... Trotzdem danke für die Info... welche Programme meinst Du genau? Ist auf jedenfall interessant - aber sind die auch open source?

Offline HelmutK

  • Benutzer
  • Beiträge: 676
Re: NetSurf GEM - erste Bilder
« Antwort #9 am: Fr 15.10.2010, 22:28:02 »
Hallo Gerhard,

das klingt natürlich sehr Interessant! ( Das wäre doch auch evt. um GemDict ohne NVDI laufen zu lassen, oder? :) )

Aber ich glaube letztendlich ist es besser eigene Routinen dafür zu verwenden anstatt auf die VDI Funktionen zurückzugreifen... Trotzdem danke für die Info... welche Programme meinst Du genau? Ist auf jedenfall interessant - aber sind die auch open source?

Also um verdeckten Fensterinhalt sichtbar zu machen braucht man aber keine offscreen-bitmaps. Die braucht man doch nur, wenn der Inhalt sich im verdeckten Zustand geändert hat, oder man will im Hintergrund zeichnen, und dann alles auf einmal zeigen. Normal reicht doch vro_cpyfm, oder sehe ich da was falsch?

Offline m0n0

  • Benutzer
  • Beiträge: 984
Re: NetSurf GEM - erste Bilder
« Antwort #10 am: Sa 16.10.2010, 08:35:45 »
Hallo,

also erstmal: der Ausdruck direkter renderer war etwas ungluecklich
gewaehlt... ich meinte damit halt in ein offscreen bitmap zeichnen
und bei bedarf den Inhalt des offscreen bitmaps in den bildschirmspeicher
kopieren. VDI ist eigentlich direkter, da es ja direkt in den Bildschirm schreibt,
ohne ein Offscreen bitmap zu nutzen...

zu vro_cpyfm:
Prinzipiell wuerde das natuerlich gehen, aber das bedeutet das ich eine Liste der Bereiche
die gerendert wurden verwalten muesste, denn es werden nur die Bereiche gerendert die
Sichtbar sind. Man kann nicht davon ausgehen das das Fenster
beim Rendern komplett sichtbar war..., nach dem Rendern muessten diese Bereiche dann
gespeichert werden, was zusaetzlichen Zeit-Aufwand durch malloc bedeutet... 
Diese Liste koennte man dann beim Sichtbar werden eines Bereiches
abarbeiten und schauen ob der neu Sichtbar gewordene Bereich schon in der Liste
vorhanden ist... Fuer mich klingt das nach vielen Dingen die
Dabei schief gehen koennen und nach Artefakten, letzlich ist
es mir zu viel Aufwand, da es ja eh nur fuer den VDI renderer waere -
mit einem eigenen Offscreen renderer der eh die Komplette page
rendern kann, ohne Ruecksicht auf momentan Sichtbare Bereiche,
entfaellt das Problem ja eh...

Gruß,
m

Offline HelmutK

  • Benutzer
  • Beiträge: 676
Re: NetSurf GEM - erste Bilder
« Antwort #11 am: Sa 16.10.2010, 11:06:02 »
Hallo,

also erstmal: der Ausdruck direkter renderer war etwas ungluecklich
gewaehlt... ich meinte damit halt in ein offscreen bitmap zeichnen
und bei bedarf den Inhalt des offscreen bitmaps in den bildschirmspeicher
kopieren. VDI ist eigentlich direkter, da es ja direkt in den Bildschirm schreibt,
ohne ein Offscreen bitmap zu nutzen...

zu vro_cpyfm:
Prinzipiell wuerde das natuerlich gehen, aber das bedeutet das ich eine Liste der Bereiche
die gerendert wurden verwalten muesste, denn es werden nur die Bereiche gerendert die
Sichtbar sind. Man kann nicht davon ausgehen das das Fenster
beim Rendern komplett sichtbar war..., nach dem Rendern muessten diese Bereiche dann
gespeichert werden, was zusaetzlichen Zeit-Aufwand durch malloc bedeutet... 
Diese Liste koennte man dann beim Sichtbar werden eines Bereiches
abarbeiten und schauen ob der neu Sichtbar gewordene Bereich schon in der Liste
vorhanden ist... Fuer mich klingt das nach vielen Dingen die
Dabei schief gehen koennen und nach Artefakten, letzlich ist
es mir zu viel Aufwand, da es ja eh nur fuer den VDI renderer waere -
mit einem eigenen Offscreen renderer der eh die Komplette page
rendern kann, ohne Ruecksicht auf momentan Sichtbare Bereiche,
entfaellt das Problem ja eh...

Gruß,
m

Wie gesagt: Wenn der verdeckte Bereich noch nicht gezeichnet wurde, muss er natürlich beim Freiwerden neu gezeichnet werden.

Nach Deiner Beschreibung brauchst Du aber sowieso für jedes Fenster so eine offscreen-bitmap. Warum nicht für jedes Fenster einen screenbuffer anlegen, und die Rechtecke dann entsprechend blitten. Solange der Inhalt sich nicht zwischenzeitlich geändert hat, sollte das funktionieren. Falls doch, wird es natürlich kompliziert.

Ich denke, in den meisten Fällen ist das Fenster, in das gezeichnet wird, oben, so dass auch alles dargestellt wird. Falls etwas verdeckt ist, kann man sich das merken, und entweder die verdeckten Bereiche in einer Liste speichern oder das ganze Fenster immer neu malen.

Wie sieht das zB aus, wenn unter XaAES das drop-down-menu über einem netsurf-Fenster ist? Dann müssten die jeweils freigewordenen Bereiche ja jedesmal neu gezeichnet werden, oder? Dafür könnte man immerhin einen screen-buffer für das ganze Programm vorsehen, auch für den Fall, dass ein Fenster von einem anderen Programm etwas von netsurf freigibt.

Hab ich jedenfalls mal so gemacht: Einen globalen buffer, und jeweils einen für die langsamen Fenster (immer nur nur die letzten 3 um Speicher zu sparen). Dann beim blitten entweder über Rechteckliste oder falls das bremst (denke nicht), diese selber speichern

Nach jedem redraw wird der gezeichnete Bereich in beide buffer kopiert. Läuft auch auf dem TT schnell genug.

Das ist nicht allzu viel Aufwand, aber wenn Du sowieso offscreen-bitmaps verwenden willst, dann wird das evtl. später überflüssig.

Offline Arthur

  • Benutzer
  • Beiträge: 10.311
  • Mein Atari erinnert mich an die gute alte Zeit..
Re: NetSurf GEM - erste Bilder
« Antwort #12 am: Sa 16.10.2010, 12:09:44 »
Ich habe es bei m0n0 genau so gedacht wie Du es gerade erklärt hast. Sonst müsst ja jedes mal ein kompletter Redraw gemacht werden und dann gute nacht.

Offline m0n0

  • Benutzer
  • Beiträge: 984
Re: NetSurf GEM - erste Bilder
« Antwort #13 am: Sa 16.10.2010, 16:15:23 »
Hallo,

natürlich muss beim Frei werden von Fensterhbereichen kein kompletter Redraw gemacht werden... sondernd nur der Bereich der Frei geworden ist... habe mich etwas falsch ausgedrückt, die wird natürlich nur einmal gerendert ( oder halt öffters wenn DHTML mit im Spiel ist), und entsprechende Bereiche aus dem Rendering Ergebniss können dann neu gezeichnet werden.

Zitat
Wie sieht das zB aus, wenn unter XaAES das drop-down-menu über einem netsurf-Fenster ist? Dann müssten die jeweils freigewordenen Bereiche ja jedesmal neu gezeichnet werden, oder? Dafür könnte man immerhin einen screen-buffer für das ganze Programm vorsehen, auch für den Fall, dass ein Fenster von einem anderen Programm etwas von netsurf freigibt.

Hab ich jedenfalls mal so gemacht: Einen globalen buffer, und jeweils einen für die langsamen Fenster (immer nur nur die letzten 3 um Speicher zu sparen). Dann beim blitten entweder über Rechteckliste oder falls das bremst (denke nicht), diese selber speichern

Ja, OK, daran habe ich noch nicht so genau gedacht... würde ja auch durchaus Sinn machen....


Offline HelmutK

  • Benutzer
  • Beiträge: 676
Re: NetSurf GEM - erste Bilder
« Antwort #14 am: So 17.10.2010, 19:03:59 »
Zitat
Wie sieht das zB aus, wenn unter XaAES das drop-down-menu über einem netsurf-Fenster ist? Dann müssten die jeweils freigewordenen Bereiche ja jedesmal neu gezeichnet werden, oder? Dafür könnte man immerhin einen screen-buffer für das ganze Programm vorsehen, auch für den Fall, dass ein Fenster von einem anderen Programm etwas von netsurf freigibt.

Hab ich jedenfalls mal so gemacht: Einen globalen buffer, und jeweils einen für die langsamen Fenster (immer nur nur die letzten 3 um Speicher zu sparen). Dann beim blitten entweder über Rechteckliste oder falls das bremst (denke nicht), diese selber speichern

Ja, OK, daran habe ich noch nicht so genau gedacht... würde ja auch durchaus Sinn machen....



Diese Funktion übernimmt ja normalerweise das AES, nur XaAES halt nicht.

Letztlich ist wahrscheinlich offscreen-bitmap die beste Lösung, man muss halt vorher wissen, ob's nicht auch einfacher geht.

Offline m0n0

  • Benutzer
  • Beiträge: 984
Re: NetSurf GEM - erste Bilder
« Antwort #15 am: Di 14.12.2010, 00:15:44 »
Einen Offscreen Renderer habe ich zwar noch nicht implementiert, aber dafür gibt es jetzt ein paar Screenshot in denen die Fonts mit FreeType2 gerendert werden, ausserdem werden Bilder unterstützt, natürlich auch Transparenz ;)

Leider gibt es noch ein Problem mit den Umlauten, aber es gibt ja schlimmeres ;)









Die NetSurf Homepage


Darf natürlich auch nicht fehlen, leider werden von NetSurf keine Hintergrund Bilder unterstützt, so das das Logo nicht zu sehen ist.


NetSurf eignet sich auch als Image Viewer ;)
 

« Letzte Änderung: Di 14.12.2010, 00:17:52 von m0n0 »

Offline Atari060

  • Benutzer
  • Beiträge: 2.358
  • Atari !!!
Re: NetSurf GEM - erste Bilder
« Antwort #16 am: Di 14.12.2010, 07:55:25 »
 :o Wow, echt cool... wird wohl ein Weihnachtsgeschenk  ;D
Atari Falcon060

Offline Mathias

  • Benutzer
  • Beiträge: 1.578
Re: NetSurf GEM - erste Bilder
« Antwort #17 am: Di 14.12.2010, 11:12:05 »
m0n0 Du bist der Beste!

Bittebitte dranbleiben (und wenn der GEM-Port fertig ist, JavaScript im Netsurf-Team vorantreiben  >:D )!


Ich wundere mich nur, was ich unter Linux falsch mache, daß das Rendering mit Netsurf total trashig ist? Das Layout bei Deinen Versionen ist um Welten besser als hier live mit Ubuntu, ...  ???
« Letzte Änderung: Di 14.12.2010, 11:22:09 von Mathias »
MegaST 4 mit Sounddesigner II MegaBus-Hardware und 56001, MegaSTE, Hades 040, MagiC Mac auf Mac OS 9 und eine FireBee.

Offline Atari060

  • Benutzer
  • Beiträge: 2.358
  • Atari !!!
Re: NetSurf GEM - erste Bilder
« Antwort #18 am: Di 14.12.2010, 15:56:04 »
Hast Du schon "online- Unterstützung" integriert... wenn Du einen Beta Tester brauchst... :)
Atari Falcon060

Offline Heinz Schmidt

  • Benutzer
  • Beiträge: 1.268
  • Atari, Linux, OS/2, MacOS, ... no need for Windows
Re: NetSurf GEM - erste Bilder
« Antwort #19 am: Di 14.12.2010, 18:18:29 »
Wow, sehr beeindruckende Bilder. So gut hat Atari-home.de noch mit keinem Atari Browser ausgesehen. Ich bin schwer beeindruckt!

Gruß Heinz
FireBee #8 -- Milan 060/50, Ethernet, CF/SD-CardReader, DVD-RW, ATI Grafik -- Falcon CT63/CTPCI/ATI, CF-Card als HDD, Altec iDrive -- 1040 STE TwiSTEr -- ...