[Geoserver-devel] New LiteRenderer changes

Jessie,

I'm committing my optimizations of literenderer - could you ensure that
they work with udig? I dont expect any problems, but there's been a
lot of changes and a quick check will not hurt.

Benifits:
   * labeling is 2* as fast
   * drawing is faster
   * for multiple FeatureTypeStyle, the data is only queried once

1. code reorganization in literenderer2 -- it should be much easier to
figure out whats going on. Still needs a little work, but its much
easier to understand.

2. added a few classes:

    * LiteFeatureTypeStyle (see javadoc) - just stores everything
required to render a single FeatureTypeStyle + the Graphics2D its
supposed to use.
    * SymbolizerAssociation - stores a little pre-computed data

3. Labeling changes:
    * there were several places where things were being computed in a
loop when they were not needed -- I factored these out.
    * short circuited some expensive computations.

4. Multiple FeatureTypeStyle:
     a) if you've only got one FTS, then it should work just like before
     b) if there's >1 FTS, then the first FTS is rendered as normal.
The rest of the FTS are rendered on a separate BufferedImage and
merged.

5. Math transform optimizations in lite. Lite was calculating math
transforms & doing unnecessary work in the critical rendering loop. I
factored these out (ie. see SymbolizerAssociation).

Once you've okayed literenderer2, we can move it back down to
literenderer and retire literenderer2 (having 2 identicle renderers is
confusing).

dave

ps for tracking -- "Committed revision 15257." to 2.1.x branch

----------------------------------------------------------
This mail sent through IMP: https://webmail.limegroup.com/

Hi dave,

I love the changes to the labeller but the drawing isn't good because I no longer get my incremental updating. What do you think we should do about that?

Jesse

dblasby@anonymised.com wrote:

Jessie,

I'm committing my optimizations of literenderer - could you ensure that
they work with udig? I dont expect any problems, but there's been a
lot of changes and a quick check will not hurt.

Benifits:
  * labeling is 2* as fast
  * drawing is faster
  * for multiple FeatureTypeStyle, the data is only queried once

1. code reorganization in literenderer2 -- it should be much easier to
figure out whats going on. Still needs a little work, but its much
easier to understand.

2. added a few classes:

   * LiteFeatureTypeStyle (see javadoc) - just stores everything
required to render a single FeatureTypeStyle + the Graphics2D its
supposed to use.
   * SymbolizerAssociation - stores a little pre-computed data

3. Labeling changes:
   * there were several places where things were being computed in a
loop when they were not needed -- I factored these out.
   * short circuited some expensive computations.

4. Multiple FeatureTypeStyle:
    a) if you've only got one FTS, then it should work just like before
    b) if there's >1 FTS, then the first FTS is rendered as normal. The rest of the FTS are rendered on a separate BufferedImage and
merged.

5. Math transform optimizations in lite. Lite was calculating math
transforms & doing unnecessary work in the critical rendering loop. I
factored these out (ie. see SymbolizerAssociation).

Once you've okayed literenderer2, we can move it back down to
literenderer and retire literenderer2 (having 2 identicle renderers is
confusing).

dave

ps for tracking -- "Committed revision 15257." to 2.1.x branch

----------------------------------------------------------
This mail sent through IMP: https://webmail.limegroup.com/