freenode/#clim - IRC Chatlog
Search
13:07:14
jackdaniel
right now when we draw things (on output recorded streams), we apply transformation to coordinates upon recording and when we replay them, we simply call it with +identity-transformation+ (with transforemd coordinates [and ink])
13:10:04
jackdaniel
this approach has a flaw that we can't use hardware acceleration for transformations (and while for coordinates it is fine, we simply pre-compute them and there is nothing wrong with that where applicable), this is problematic if we have a non-uniform ink
13:11:31
jackdaniel
because we either transform it like other things during recording (and that is inefficient since it is done in software pixel-by-pixel), or we need to record medium transformation, apply invert transformation on coordinates (depends on drawing primitive) and then perform transformation in hardware
13:13:03
jackdaniel
while right now it is not a big deal, we'll have this problem anyway when we'll want to emancipate sheet transformations like slyrus and beach suggest we should
13:13:27
beach
Is this a case where the specification gives us a choice between storing the transformed coordinates and storing the transformation with the original coordinates?
13:14:10
jackdaniel
I think so, but I didn't look for it yet. I'm just sharing now how this is limiting some optimizations
13:15:33
beach
"The effect of the specified "user" transformation (composed with the medium transformation) must be captured; CLIM implementations are free to do this either by saving the transformation object or by saving the transformed values of all objects that are affected by the transformation."
14:05:54
jackdaniel
from bad news: I'm hestitant to bury myself in mcclim for another few weeks to work on clx to adjust to the alternative behavior (at least now)
14:10:13
scymtym
mcclim calls MCCLIM-TRUETYPE:AUTOCONFIGURE-FONTS at load time. this has two problems: 1) building software including mcclim requires some aspects of a graphical environment (see https://jenkins-cse.bob.ci.cit-ec.net/job/build-generator-wip-language-server-ci-docker-build-generator-experiments/6/console for symptoms of missing those) 2) if i'm not mistaken, when dumping an image, the configuration computed for the machine building the
14:12:17
jackdaniel
sure, that's an option too. i.e as initialize-instance after method for clim:port object
14:12:51
jackdaniel
(port is a logical link to a display server, so it is a main class backends revolve around)
14:14:40
scymtym
thank you for the assessment, i can investigate this and create a pull request if you like
14:21:22
jackdaniel
I'm adding gs-transformation-mixin to the graphics-state mixin-set, so if output record subclasses it it should have access to the original medium transformation
14:22:38
jackdaniel
but I won't lift transform-coordinates-mixin from basic-medium now (because all will fall apart on backends we have)
16:02:27
jackdaniel
I wonder how blasphemous would be having clim:color-rgb return fourth (opacity) value defaulting to 1.0
16:02:45
jackdaniel
alternative is to implement clime:color-rgba which would 99% duplicate the former
16:06:34
jackdaniel
I need to think about it. that would make clim code written for McCLIM fail on genera (if it depends on the fourth value)
17:47:02
jackdaniel
(right now it is (design-ink design x y) and returns ink at specific coordinates