[Oberon] Module Display: ReplPatternC (with clipping)?

Jörg Straube joerg.straube at iaeth.ch
Tue Feb 26 20:42:46 CET 2019


No there is no higher module with clipping functionality yet. But porting it over should be doable.

Jörg

> Am 26.02.2019 um 20:10 schrieb Till Oliver Knoll <till.oliver.knoll at gmail.com>:
> 
> Hello all,
> 
> As indicated in my first post I am porting our "GigaDraw" exercise that
> we wrote as an exercise during the "Systemprogrammierung" in winter
> semester 98/99.
> 
> I stumbled over missing functions in module Display, specifically the
> copy/replicate pattern functions with their "clipping" variants, as they
> were available in OberonV4 (I think) at the time. E.g. as still found here:
> 
> 
> https://github.com/Spirit-of-Oberon/ProjectOberonV4/blob/master/Display.Def
> 
> For instance this function dodes not exist anymore in the current
> Display Module:
> 
>  PROCEDURE ReplPatternC*(F: Frame; col: INTEGER; pat: Pattern; x, y, w,
> h, xp, yp, mode: INTEGER); END ReplPatternC;
> 
> 
> The only discussion i found in the list archive around "ReplPattern" is
> here:
> 
> https://lists.inf.ethz.ch/pipermail/oberon/2018/012119.html
> 
> That discussion seems to confirm that the "clipping variants" are indeed
> not available anymore (and that discussion mostly is about "4bit
> displays" and how to write "concurrent display drivers" implementing
> Module Display).
> 
> 
> 
> When I quickly replace my "line drawing code" which for instance is (in
> its original form):
> 
>  Display.ReplPatternC(msg.f, line.col, Display.grey0, u, v, w, h, u, v,
> Display.replace)
> 
> with the corresponding call like
> 
>  Display.ReplPattern(line.col, Display.grey, u, v, w, h, Display.replace)
> 
> then I do get a dotted line, but as expected I scribble all over the
> screen, especially across Frame boundaries (when I move the line near
> the Frame border).
> 
> (And yes, apparently in the first "Lines" module of ours we were only
> able to either draw horizontal or vertical lines - no Bresenham
> algorithm yet ;)).
> 
> 
> 
> So my question: is there a "higher level" drawing module available (I am
> using "Oberon Core", as available in the Mac App Store), possibly in
> other Oberon variants these days (e.g. "Experimental Oberon")? Or is one
> supposed to write your own "Drawing API", doing the "bit fiddling"
> clipping yourself?
> 
> Sorry for the noob question or if this has been asked before, but I did
> not find much in the archive (except the above discussion). And yes, a
> pointer to a RTFM is perfectly fine :)
> 
> 
> Best regards,
>  Oliver
> 
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon



More information about the Oberon mailing list