exchanged render.c with patch aginst orig
[lectures/dfb-slides.git] / render.c
diff --git a/render.c b/render.c
deleted file mode 100644 (file)
index 883693a..0000000
--- a/render.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/* DirectFB presentation app
- *
- * Copyright (C) 2001  convergence integrated media
- * Authors: Sven Neumann <sven@convergence.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <directfb.h>
-
-#include <glib-object.h>
-
-#include "apptypes.h"
-
-#include "action.h"
-#include "context.h"
-#include "header.h"
-#include "image.h"
-#include "listitem.h"
-#include "render.h"
-#include "resources.h"
-#include "slides.h"
-#include "slide.h"
-#include "text.h"
-#include "video.h"
-
-
-static void render_bullet (Context *context,
-                           gint    *offx,
-                           gint     offy);
-
-void
-render_bg (Context *context)
-{
-  guchar *color;
-  
-  color = context_get_bgcolor (context);
-  context->surface->SetColor (context->surface, 
-                              color[0], color[1], color[2], color[3]);
-  context->surface->FillRectangle (context->surface, 
-                                   0, 0, context->w, context->h);
-}
-
-void
-render_bgimage (Context *context)
-{
-  gchar *image;
-
-  image = context_get_bgimage (context);
-  if (image)
-    {
-      IDirectFBSurface *src;
-      gint w, h;
-
-      src = resources_get_surface (image);
-      if (!src)
-        return;
-
-      src->GetSize (src, &w, &h);
-          
-      if (w == context->w && h == context->h)
-        {
-          context->surface->Blit (context->surface, src, NULL, 0, 0);
-        }     
-      else
-        {
-          DFBRectangle rect = { 0, 0, context->w, context->h };
-          
-          context->surface->StretchBlit (context->surface, 
-                                         src, NULL, &rect);
-        }
-      
-      resources_release_surface (image);
-    }
-}
-
-void
-render_image (Context *context,
-              Image   *image)
-{
-  Item                  *item;
-  IDirectFBSurface      *src; 
-  DFBRectangle           rect;
-  DFBSurfacePixelFormat  format;
-  gint w, h, ratio;
-
-  if (IS_VIDEO (image))
-    {
-      Video *video;
-
-      video = (Video *) image;
-      video->dest_surface = context->surface;
-
-      return;
-    }
-
-  src = resources_get_surface (ITEM (image)->value);
-
-  if (!src)
-    return;
-
-  src->GetSize (src, &w, &h);
-  src->GetPixelFormat (src, &format);
-
-  if (format == DSPF_ARGB)
-    context->surface->SetBlittingFlags (context->surface, 
-                                        DSBLIT_BLEND_ALPHACHANNEL);
-
-  ratio = (w * 1024) / h;
-  item = (Item *) image;
-  
-  rect.w = item->flags & WIDTH ? 
-    item->width : (item->flags & HEIGHT ? (item->height * ratio) / 1024 : w);
-  rect.h = item->flags & HEIGHT ? 
-    item->height : (item->flags & WIDTH ? (item->width * 1024) / ratio : h);
-
-  rect.x = item->flags & XOFFSET ? item->x : 0;
-  rect.y = item->flags & YOFFSET ? item->y : 0;
-  
-  if (format == DSPF_ARGB)
-    context->surface->SetBlittingFlags (context->surface, 
-                                        DSBLIT_BLEND_ALPHACHANNEL);
-
-  if (w == rect.w || h == rect.h)
-    context->surface->Blit (context->surface, src, NULL, rect.x, rect.y);
-  else
-    context->surface->StretchBlit (context->surface, src, NULL, &rect);
-
-  context->surface->SetBlittingFlags (context->surface, DSBLIT_NOFX);
-
-  resources_release_surface (ITEM (image)->value);
-}
-
-void
-render_text (Context *context,
-             Text    *text,
-             gint    *offy)
-{
-  guchar        *color;
-  gchar         *face;
-  gint           size;
-  gint           offx;
-  IDirectFBFont *font;
-
-  context_push (context, (Item *) text);
-
-  color = context_get_fgcolor (context);
-  context->surface->SetColor (context->surface, 
-                              color[0], color[1], color[2], color[3]);
-
-  face = context_get_face (context);
-  size = context_get_size (context);
-
-  g_return_if_fail (face != NULL);
-  g_return_if_fail (size > 0);
-
-  offx = 10;
-
-  if (IS_HEADER (text))
-    size = (size * 64) / 52;
-  else if (IS_LISTITEM (text))
-    size = (size * 48) / 64;
-  else
-    offx+=40;
-
-  font = resources_get_font (face, size);
-  
-  if (IS_LISTITEM (text))
-    {
-      gint asc;
-
-      font->GetAscender (font, &asc);
-      render_bullet (context, &offx, *offy + asc);
-    }
-
-  context->surface->SetFont (context->surface, font);
-  context->surface->DrawString (context->surface, 
-                                ITEM (text)->value, -1,
-                                offx, *offy, DSTF_TOPLEFT);
-
-  *offy += (size * 64) / 48;
-
-  context_pop (context, (Item *) text);
-}
-
-static void
-render_bullet (Context *context,
-               gint    *offx,
-               gint     offy)
-{
-  IDirectFBSurface *src;
-  gchar            *image;
-  gint              w, h;
-
-  image = context_get_bullet (context);
-  if (image)
-    {
-      src = resources_get_surface (image);
-      if (!src)
-        return;
-
-      src->GetSize (src, &w, &h);
-
-      context->surface->SetBlittingFlags (context->surface, 
-                                          DSBLIT_BLEND_ALPHACHANNEL);
-      context->surface->Blit (context->surface, 
-                              src, NULL, *offx + 20, offy - h);
-      context->surface->SetBlittingFlags (context->surface, DSBLIT_NOFX);
-
-      resources_release_surface (image);
-
-      *offx += w + 24;
-    }
-}