summaryrefslogtreecommitdiff
path: root/todo/amigaos_frontend.mdwn
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2017-02-04 09:41:13 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2017-02-04 09:41:13 +0000
commite7366bf41f68cfe07e9ea03fc4a398baecbae651 (patch)
tree5bb9c3cbe7eab7e70ff1ebd65d9de59a694762df /todo/amigaos_frontend.mdwn
downloadnetsurf-wiki-e7366bf41f68cfe07e9ea03fc4a398baecbae651.tar.gz
netsurf-wiki-e7366bf41f68cfe07e9ea03fc4a398baecbae651.tar.bz2
Initial conversion from MediaWiki, 20170204
Diffstat (limited to 'todo/amigaos_frontend.mdwn')
-rw-r--r--todo/amigaos_frontend.mdwn175
1 files changed, 175 insertions, 0 deletions
diff --git a/todo/amigaos_frontend.mdwn b/todo/amigaos_frontend.mdwn
new file mode 100644
index 0000000..8b0c45e
--- /dev/null
+++ b/todo/amigaos_frontend.mdwn
@@ -0,0 +1,175 @@
+[[!meta title="Todo/AmigaOS frontend"]]
+[[!meta author="Chris"]]
+[[!meta date="2017-01-12T19:51:28Z"]]
+
+
+[[!toc]]
+
+Plotters
+--------
+
+- <s>Speed up plotting on 16-bit screenmodes</s>
+ - Think this is now largely irrelevant as font\_antialiasing:0
+ makes a huge difference. However, would like to add
+ hardware-accelerated anti-aliased text rendering
+ (CompositeTags() does not support ALPHATEMPLATE so this is not
+ possible at present - see also the chris/composite-text branch)
+
+- Direct rendering - problems
+ - inline image placement
+ - grey background for all text
+ - won't work with Cairo renderer
+ - may crash with certain gfx lib operations (AreaFill - need to
+ alloc AreaInfo/TmpRas, check if this is ok to do on window
+ rastports or if one or the other is allocated already)
+ - completely broken with tiled renderer
+ - Will probably only leave this in for debugging purposes, has no
+ real use now.
+
+- Text
+ - Replace ligatures?
+ - Use splay trees for font cache
+
+- Simple Refresh
+ - Dragging blocking windows (eg. About) over the top of a render
+ area does not redraw <i>at all</i>
+ - Favicon and throbbers do not redraw when damaged (the redraw
+ functions just crash when they are initiated from the
+ hook/ami\_handle\_msg)
+ - Change to \*queue\* redraws same as corewindows
+
+- bitmap scaling
+ - not always accurate
+ - switching to triangle mode is more accurate, but causing
+ freezing at least on SAM440 with built-in gfx
+
+User Interface
+--------------
+
+- Shiny new treeview toolbar
+- treeview window redraw needs optimising
+- Drag-related
+ - Support the drag'n'drop of icons from/to OpenAmiga Filer project
+ - Drag to hotlist from WB?
+ - Drag selections within text input fields should do a move rather
+ than a copy (might be core bug?)
+ - Clicks to become drags only after 5px or so movement (done for
+ treeviews)
+ - Text selection should have auto-scroll ability at window's edge
+ - Dragging text to the URL or search bar should immediately enact
+ that option
+- Iconify gadget - for non-WB screens. Add extra AppIcons functions,
+ eg Info, Delete. Dynamic updates?
+- Allow multiple homepages - see
+ <http://bugs.netsurf-browser.org/mantis/view.php?id=2270>
+- Add play/stop buttons in sound DT handler
+- Experiment with label.image in clicktabs (favicon; text in more
+ appropriate charset)
+ - More appropriate charset also useful for hotlist menu, toolbar
+ and history context menu
+- Use menuclass for pull-down menu
+- Fix passing of commandline options to the core (NSOPTS/M)
+- Use new Ringhio progress notifications for downloads (if we can
+ upload the header)
+
+Core windows
+------------
+
+- Share off-screen bitmaps (with browser etc)
+- Allow simple refresh windows
+- Optimise redraw (on scroll)
+- Drag select redraw not working correctly
+- Regression: dragging from global history no longer working
+
+popupmenu deadlock blockers
+---------------------------
+
+These need doing now a bug in popupmenu.library has been fixed.
+
+- Context sensitive help
+ - Add Help key processing in gui\_options.c and anywhere else
+ needed (local history, treeviews, etc)
+ - <s>Fix asynchronous close signal thing now but is fixed in
+ lib</s> - doesn't appear to need any changes, AFAICT I didn't
+ bother working around this bug
+
+Misc
+----
+
+- <s>Switch to malloc/free so OS3 gets full benefit of clib2's slab
+ allocator</s>
+ - <s>should have no impact on OS4 perf, but may be worth
+ abstracting this so we can switch and change easier in future
+ (unless it makes the debug info from clib2 useless... hmm...
+ maybe use \#defines)</s>
+ - when done, enable clib2's debug mem handler: "The settings for
+ the memory debugging layer can be found in the
+ "stdlib\_memory.h" header file, right in the first few lines.
+ Just uncomment the lines for "\_\_MEM\_DEBUG",
+ "\_\_MEM\_DEBUG\_LOG" and "\_\_USE\_MEM\_TREES" as needed."
+ - Enable stats collection so we can tune the slab size - see
+ <https://github.com/adtools/clib2/blob/master/library/include/stdlib.h#L190>
+- <s>Reduce signals usage (if possible)</s> - believe this is no
+ longer an issue
+- Replace ExAll() usage in menu.c with whatever the new OS4 equivalent
+ is
+- Font styles in clipboard (might need new chunk defined)
+- Revamp About requester
+- Add a low memory handler which calls llcache\_clean(true). Need to
+ somehow guard this as it isn't thread-safe (set a "ok to clean",
+ "clean in progress" flag which is set/cleared/blocks the GUI?)
+ - MEM\_TRY\_AGAIN might help, return this until safe to purge, or
+ until purge can happen in main loop
+ - <s>Safe to do this to call \_\_free\_unused\_slabs() on OS3</s>
+- <s>Ditch libauto</s>
+ - Hopefully this fixes starting NetSurf on OS4.0 - program is
+ apparently terminating before it starts running any code. Unable
+ to test, awaiting feedback from the person who reported
+ problems.
+ - See also
+ <http://www.amiga.org/forums/showpost.php?p=773311&postcount=9>
+ - Probably doesn't work on OS4.0, as I saw a note that random()
+ needed a v53 newlib.library when rebuilding the toolchain
+
+OS3 Support
+-----------
+
+Please see <http://www.amiga.org/forums/showthread.php?t=56813> and
+<http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=34237&forum=27>
+for various discussion around this topic, as well as
+<http://www.amiga.org/forums/showthread.php?t=63990> for more recent
+updates.
+
+NetSurf will now build for OS3. For a quick start on building NetSurf
+see [[OS3 build notes|documentation/buildingforamigaos]].
+
+There are some outstanding known issues:
+
+- Fonts
+ - There seems to be a (lack of) spacing problem with some fonts.
+ May need to manually add OT\_SpaceWidth?
+ - Bitmap fonts (with limitations, ie. no UTF-8) support partially
+ working - line break detection is broken and sometimes causes an
+ infinite loop. (is this still the case?)
+ - The font scanner might be broken.
+
+- Plotters/Bitmaps
+ - We are currently ignoring the p96 stuff and treating all screens
+ as palette-mapped. This works but means the faster direct 32-bit
+ bitmap code is not being used when P96 is available. If we take
+ the P96 path, bitmaps work but everything else is rendered
+ unreadable.
+ - PDTM\_SCALE (used when getting palette mapped bitmaps) only
+ works on v45, need to use BitMapScale for OS3.5 compatibility.
+ (this might be fixed since guigfx change?)
+
+- GUI
+ - Tabs working but closing them causes NetSurf to crash.
+ - The status bar is not in the window border (frbuttonclass is
+ irredeemably broken in OS3)
+ - A lot of the GUI hasn't tmk been tested.
+ - The treeview windows eat memory for breakfast (might be better
+ now using corewindows with tiles and simplerefresh option)
+
+- Memory freed twice (recoverable alert 010000009) on exit
+