Hi Johan, I still don't understand where this ties into Opal, which is an implementation of the CoreGraphics APIs. Which CoreGraphics APIs require this functionality to implement them? CoreGraphics is an immediate mode API - it doesn't provide any kind of scene graph. Scene graphs are built on top using CoreAnimation layers (or Cocoa Views). I'm still not sure where these fit into Opal. I'd also recommend that you read the OpenStep or Cocoa API naming conventions, as your method names are highly problematic (e.g. get methods that don't take a pointer) and you're writing very large amounts of code that could be trivially replaced with a fraction of the amount (and with significantly less overhead - creating a class is not free, each one will use at least 4KB of RAM in the runtime and you're creating a load of classes that just differ by a function that could easily be a block [or even function pointer] ivar).
Please slow down, take a step back, work out: - What you are trying to do. - How, if at all, it fits in with GNUstep. - What the best way of implementing it is. David On 15 Dec 2014, at 16:57, Johan Ceuppens <enrytheer...@gmail.com> wrote: > Hi, > > I have some time now to answer, but please look at the code as it is more > clear; > > 2014-12-15 14:08 GMT+01:00 David Chisnall <thera...@sucs.org>: > Hi Johan, > > It would really help if you could post a high-level overview of what you're > trying to do. > > The only thing the code provides is a distributed fuzzy network which alters > the screen according to rules made out of text, which humans can understand > and write rules in. > > As an example I take the SVG graphics format. You paint subelements eg. in > the Inkscape software (http://inkscape.org) you click on subelements to alter > them. This is how a fuzzy network (a greedy decision tree algorithm) alters > the screen you look at. You ask the paint node to eg. "paint extremely fast" > or "paint not" and so on. The painting parser using fuzzy rules based on > "extremely", "not", "indeed" among other things and performs @selectors to > paint algorithms such as paintOn:(SomeCanvasOrPaintSystem*)canvas. > > By delegating adapters (wrappers) to the (paint for now) rulesystem, (paint) > canvas and (paint) fuzzy parser you alter the system i.e. you have an > interface to the thing itself. > > Opal is an implementation of the CoreGraphics APIs from OS X and, although > it's written in Objective-C, exposes purely C interfaces. > > My code is written in objc, it can be called from C or interfaced to C later > on, if you like. > > The file OpalFuzzyPaintRules.m is the C interface now of a (distributed) > fuzzy node for painting, as an example: > //start of code > void makePaintRules(OpalFuzzyPaintRuleSystem* sys) > { > [sys addRule:"paint extremely" : paintOn:]; > OpalFuzzyFunction *f = [OpalFuzzyFunctionExtremely new]; > [f x:.0]; > [sys addFunction:"paint extremely" : f]; > > [sys addRule:"paint not for 1 second" : paintIdle1SecondOn:]; > f = [OpalFuzzyFunctionIdle new]; > [f x:.0]; > [sys addFunction:"paint not for 1 second" : f]; > } > //end of code > > I'm not sure how any of the things that you've written about apply to it. > > > There's a second patch at > https://github.com/enrytheermit/gnustep/tree/master/gnustep-back/patches > named patch-p0-gnustep-back-enry-12152014-2.patch with evrything in I said > above. See the 00_INDEX.txt file in the github repo for more information. > > `Enry -- Sent from my STANTEC-ZEBRA _______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev