From 0ddf16bd5f94ba70897d6ae2d2a1ee83097d5194 Mon Sep 17 00:00:00 2001 From: Liam Girdwood Date: Fri, 27 Jun 2008 09:07:44 +0100 Subject: [PATCH] sky: star render - further optimised rendering brightness limits. --- src/objects/star.c | 69 +++++++++++++++++++++++++++++++----------------------- src/sky/render.h | 2 +- 2 files changed, 41 insertions(+), 30 deletions(-) diff --git a/src/objects/star.c b/src/objects/star.c index dbe38ac..e3a89ea 100644 --- a/src/objects/star.c +++ b/src/objects/star.c @@ -41,33 +41,43 @@ struct star_pixmap_cache { struct star_render_size { - gint size; + gdouble size; gdouble alpha; }; static const struct star_render_size star_sizes[RENDER_MAG_BANDS] = { - {37, 1.0}, - {35, 1.0}, - {33, 1.0}, - {31, 1.0}, - {29, 1.0}, - {27, 1.0}, - {25, 1.0}, - {23, 1.0}, - {21, 1.0}, - {18, 1.0}, - {15, 1.0}, - {13, 1.0}, - {11, 1.0}, - {9, 1.0}, - {7, 1.0}, - {5, 1.0}, - {4, 1.0}, - {3, 1.0}, - {2, 1.0}, - {1, 1.0}, - {1, 0.6}, - {1, 0.3}, + {1.0, 0.5}, + {1.0, 0.8}, + {1.0, 1.0}, + {1.5, 1.0}, + {2.0, 1.0}, + {3.0, 1.0}, + {4.0, 1.0}, + {5.0, 1.0}, + {7.0, 1.0}, + {8.0, 1.0}, + {9.0, 1.0}, + {10.0, 1.0}, + {11.0, 1.0}, + {12.0, 1.0}, + {13.0, 1.0}, + {14.0, 1.0}, + {15.0, 1.0}, + {16.0, 1.0}, + {17.0, 1.0}, + {18.0, 1.0}, + {19.0, 1.0}, + {20.0, 1.0}, + {21.0, 1.0}, + {22.0, 1.0}, + {23.0, 1.0}, + {24.0, 1.0}, + {25.0, 1.0}, + {26.0, 1.0}, + {27.0, 1.0}, + {28.0, 1.0}, + {29.0, 1.0}, + {30.0, 1.0}, }; static struct star_pixmap_cache cache; @@ -294,16 +304,18 @@ void star_object_render(struct render_object *robject) struct star_object *object = (struct star_object*)robject->object; guint i = object->dobject.aobject.type; gint size; - + if (object->dobject.Vmag == FP_NAN) return; - - size = (RENDER_MAG_BANDS - - ceil((robject->context.faintest_magnitude - object->dobject.Vmag) * 2.5)); -//printf("mag %3.2f size %d faint %3.2f\n", object->dobject.Vmag, size, robject->context.faintest_magnitude); + size = 2 + ceil( + (robject->context.faintest_magnitude - object->dobject.Vmag) + * 2.5); + if (size >= RENDER_MAG_BANDS) size = RENDER_MAG_BANDS - 1; + if (size < 0) + size = 0; if (i >= SP_NUM) i = SP_NUM - 1; @@ -313,7 +325,6 @@ void star_object_render(struct render_object *robject) robject->coord[0].x - cache.offset[i][size], robject->coord[0].y - cache.offset[i][size]); cairo_paint(robject->cr); -//printf("name %s\n", object->dobject.aobject.name); } static gint render_pixmap(gint spi, gint mag) diff --git a/src/sky/render.h b/src/sky/render.h index c8d0ab5..b2fa4f8 100644 --- a/src/sky/render.h +++ b/src/sky/render.h @@ -24,7 +24,7 @@ #include /* renderer magnitude bands - non planets, sun or moon */ -#define RENDER_MAG_BANDS 22 /* TODO: add more bands */ +#define RENDER_MAG_BANDS 32 #define RENDER_MAX_COORDS 3 /* -- 2.11.4.GIT