Commit Graph

5 Commits

Author SHA1 Message Date
Yann MAGNIN 221dacae2e VxKernel 0.6.0-9 : Add line API + circle API
@add
<> include/vhex/display/draw
  | add circle drawing primitive
  | add line drawing primitives
<> src/drivers/screen/r61524
  | add assembly version of the "frame_frag_send" (WIP)
<> src/modules/display/draw
  | add filled circle algorithm
  | add line algorithm

@update
<> include/vhex/display
  | use "dsurface_t" instead of "struct dshader_surface"
  | rename pixel dstack primitives
<> src/drivers/screen/r61524
  | clear proper zone of the surface
  | avoid unused area wiping
  | remove (temporary) surface merging
<> src/module/display/dclear
  | clear proper zone of the surface
  | rename internal primitives
2022-06-15 20:40:43 +02:00
Yann MAGNIN dca07d7f06 VxKernel 0.6.0-4 : Support the text API
@add
<> src/modules/display/text/dascii
  | proof-of-concept of "one-char" drawing API (used for kernel debug)
<> src/modules/fs
  | empty File System module used to expose some primitives used by the libc:
  |  write(), read(), lseek() and close() which there have been removed from the
  |  `fxlibc` project which used an old / deprecated ABI/sycall interface that
  | doesn't exist in this version of Vhex

@update
<> include/display/draw/pixel
  | remove the display ID returned by dpixel(). All primitives that support
  |  shaders must provide explicit API. This to allow fast-optimized API and
  |  polyvalence API for shadering which impact the performance
<> src/modules/display/dclear
  | isolate tree level for this primitive:
  |  - kernel  : direct fragment drawing primitive (by-pass dstack)
  |  - dstack  : dstack drawing primitive
  |  - user    : user drawing primitive (dstack-API)
  | invalidate automatically the dstack each time the primitive (user-level) is
  |  involved
<> src/modules/display/dstack
  | isolate the dstack invalidate part in a specific primitive

@fix
<> make/Makefile
  | proper support of the OpenLibm header path
<> src/drivers/screen/r61524
  | proper support of the last data fragment size. This caused an override on
  |  the first X line of the screen
<> src/modules/display/dstack
  | fix a crash when the number of action is full
  | fix a crash with the default index used for action cache
  | fix a crash with the default index used for shader cache
  | fix action initialization
  | fix action quit primitive
<> src/modules/display/text/dfont
  | fix the character drawing algorithm
  | proper support of the character drawing color (foreground/background)
  | fix the kernel-level primitive used to display a Unicode string
<> src/modules/display/text/dtext
  | fix a crash with the internal index counter
  | fix a crash in the internal cache
  | fix the quit function
2022-06-10 21:28:51 +02:00
Yann MAGNIN 510c4f1f86 VxKernel 0.6.0-2 : Prepare font and text API (WIP)
@add
<> include/vhex/display :
   | add dwidth() primitive
   | add dheight() primitive
<> include/vhex/display/font :
   | create a font structure that support proportional font
   | expose font primitives API (WIP)
<> vhex/module/display/text/dfont:
   | support utf8 string format
   | add geometry font information (WIP)
<> vhex/module/display/text/dtext:
   | write most of the API primitive (WIP)
   | proper isolation between font <-> text API

@update
<> include/vhex/display/shader :
   | add a quit() routine that will be involved at the end of dupdate()
   | add display_[width/height] in driver interface
   | add display screen information primitives
<> vhex/drivers/screen/r61524/r61524.c
   | add display driver interface screen information
<> vhex/module/display/dclear:
   | use the 32-bits arguments instead of the broken dshader_call_arg_t
   | support the new API with quit() routine
<> vhex/module/display/dstack:
   | support the new display screen information
   | support the quit() routine at the end of the dupdate()

@fix
<> include/vhex/display/shader :
   | remove broken transparent-union implicit cast
   | fix argument transmitted to drawing routine (only 32bit arguments supported)
2022-05-28 21:55:48 +02:00
Yann MAGNIN a916120d66 VxKernel 0.6.0-1 : Rework the graphic pipeline
@add
<> board/fxcg50/fxcg50-dynamic.ld : add the "user/addin" linker script
<> include/vhex/display* : rework the graphic API/pipeline
<> include/vhex/driver/scree/r61524 : add hardware description and API
<> drivers/screen/r61524 : add r61524 driver
<> module/display/dstack : new pipeline

@update
<> board/fxcg50/board : explicitly set the DWIDTH/DHEIGHT define
<> board/fxcg50/hypervisor : API update (WIP)
<> include/vhex/driver :
   | update driver information (use bitfield instead of define and macros)
   | configure driver's primitive cannot be NULL
   | driver can embed module data (ex: r61524 embed display module primitives)
<> include/vhex/hypervisor :
   | update driver information (use bitfield instead of define and macros)
   | update world information (use bitfield instead of define and macros)
   | remove useless "restricted" keyword in prototype
<> make/Makefile : add the support of the vxSDK (0.12.0)
<> module/display/dclear  : support of the new pipeline
<> module/display/display : support of the new pipeline
<> module/display/dupdate : support of the new pipeline
<> module/hypervisor/switch : support new driver/world structure
<> module/hypervisor/table  : support new driver/world structure
<> vxsdk.toml : support of the vxSDK 0.12.0

@fix
<> drivers/mpu/sh/sh7305/cpu/cpu : mask interrupt by default (cpu_atomic_end)
2022-05-27 11:57:55 +02:00
Yann MAGNIN f851b73cba VxKernel 0.5.0 : Modules + project architecture update
@add
<> board/fxcg50/fxcg50.ld : module section
<> board/fxcg50/hypervisor : board-specific hypervisor init/quit primitives
<> board/fxcg50/kmalloc : board-specific kmalloc init/quit primitives
<> vhex/module.h : module information
<> modules/display/display.c : add "display" module
<> modules/keyboard/keyboard.c : add "keyboard" module
<> modules/hypervisor/hypervisor.c : add "hypervisor" module
<> modules/kmalloc/kmalloc.c : add "kmalloc" module

@update
<> vxsdk.toml : update the project version
<> GLOBAL : change the "src/" architecture
<> board/fxcg50/initialize.c : isolate kmalloc part
<> kernel/kernel.c : initialize all modules
2022-03-04 17:37:38 +01:00
Renamed from src/render/dclear.c (Browse further)