javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/graphicsfactory.cpp
author hgs
Fri, 15 Oct 2010 12:29:39 +0300
changeset 80 d6dafc5d983f
parent 57 59b3b4473dc8
permissions -rw-r--r--
v2.2.19_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*******************************************************************************
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved. This program and the accompanying materials
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * are made available under the terms of the Eclipse Public License v1.0
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * which accompanies this distribution, and is available at
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * http://www.eclipse.org/legal/epl-v10.html
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 *
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 * Contributors:
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 *     Nokia Corporation - initial API and implementation
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 *******************************************************************************/
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
#include "graphics.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
#include "bufferimpl.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
#include "graphicscontextimpl.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
#include "pixmap.h"
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    16
#include "imageimpl.h"
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
#include "imageloaderimpl.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include "imagedataimpl.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include "palettedataimpl.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include "gfxlog.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
35
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    22
#ifdef __SYMBIAN32__
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    23
#include "windowsurfaceimpl_symbian.h"
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    24
#else
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    25
#include "windowsurfaceimpl_linux.h"
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    26
#endif
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    27
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
namespace Java { namespace GFX {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
/*static*/ WindowSurface* GraphicsFactory::createWindowSurface(QPaintDevice* aSurface, WindowSurfaceType aType)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
   GFX_LOG_FUNC_CALL();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
   WindowSurfaceImpl* wsurf = new WindowSurfaceImpl(aSurface, aType);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
   return static_cast<WindowSurface*>(wsurf);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
/*static*/ WindowSurface* GraphicsFactory::createWindowSurface(QWidget* aWidget, bool aAutoRefresh)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
   GFX_LOG_FUNC_CALL();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
   WindowSurfaceImpl* wsurf = new WindowSurfaceImpl(aWidget, aAutoRefresh);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
   return static_cast<WindowSurface*>(wsurf);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
/*static*/ Buffer* GraphicsFactory::createBuffer()
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
    GFX_LOG_FUNC_CALL();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
    BufferImpl* buffer = new BufferImpl();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
    return static_cast<Buffer*>(buffer);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
/*static*/ GraphicsContext* GraphicsFactory::createGraphicsContext()
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
    GFX_LOG_FUNC_CALL();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
    GraphicsContextImpl* gc = new GraphicsContextImpl();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
    return static_cast<GraphicsContext*>(gc);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    58
/*static*/ Image* GraphicsFactory::createImage(int aWidth, int aHeight, int aFillColor, TImageType aType)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
    GFX_LOG_FUNC_CALL();
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    61
    if(aType == EImage)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    62
        {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    63
        ImageImpl* image = new ImageImpl();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    64
        // create ARGB32 image
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    65
        image->createBySize(aWidth, aHeight, aFillColor, EFormatARGB32); 
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    66
        return static_cast<Image*>(image);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    67
        }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    68
    else if(aType == EPixmap)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    69
        {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    70
        Pixmap* pixmap = new Pixmap();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    71
        pixmap->createBySize(aWidth, aHeight, aFillColor ,EFormatNone /*format decided by framework*/);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    72
        return static_cast<Image*>(pixmap);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    73
        }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    74
    return NULL;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
/*static*/ Image* GraphicsFactory::createImage(Image* aImage, int aX, int aY, int aWidth, int aHeight)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
    GFX_LOG_FUNC_CALL();
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    80
    if(aImage->type() == EImage)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    81
        {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    82
        ImageImpl* image = new ImageImpl();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    83
        image->createFromImage(aImage, aX, aY, aWidth, aHeight); 
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    84
        return static_cast<Image*>(image);    
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    85
        }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    86
    else if(aImage->type() == EPixmap)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    87
        {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    88
        Pixmap* pixmap = new Pixmap();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    89
        pixmap->createFromImage(aImage, aX, aY, aWidth, aHeight);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    90
        return static_cast<Image*>(pixmap);       
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    91
        }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    92
    return NULL;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    95
/*static*/ Image* GraphicsFactory::createImage(Image* aImage, int aX, int aY, int aWidth, 
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    96
                                                  int aHeight, TImageType aTypeOfCopy)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
    GFX_LOG_FUNC_CALL();
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
    99
    if(aTypeOfCopy == EImage)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   100
        {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   101
        ImageImpl* image = new ImageImpl();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   102
        image->createFromImage(aImage, aX, aY, aWidth, aHeight); 
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   103
        return static_cast<Image*>(image);    
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   104
        }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   105
    else if(aTypeOfCopy == EPixmap)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   106
        {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   107
        Pixmap* pixmap = new Pixmap();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   108
        pixmap->createFromImage(aImage, aX, aY, aWidth, aHeight);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   109
        return static_cast<Image*>(pixmap);       
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   110
        }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   111
    return NULL;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   114
/*static*/ Image* GraphicsFactory::createImage(const QImage& aImage, TImageType aType)
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 35
diff changeset
   115
{
59b3b4473dc8 v2.2.9_1
hgs
parents: 35
diff changeset
   116
    GFX_LOG_FUNC_CALL();
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   117
    if(aType == EImage)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   118
         {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   119
         ImageImpl* image = new ImageImpl();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   120
         // create ARGB32 image
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   121
         image->createFromQImage(aImage);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   122
         return static_cast<Image*>(image);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   123
         }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   124
     else if(aType == EPixmap)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   125
         {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   126
         Pixmap* pixmap = new Pixmap();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   127
         pixmap->createFromQImage(aImage);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   128
         return static_cast<Image*>(pixmap);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   129
         }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   130
    return NULL;
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 35
diff changeset
   131
}
59b3b4473dc8 v2.2.9_1
hgs
parents: 35
diff changeset
   132
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   133
/*static*/ Image* GraphicsFactory::createImage(const QPixmap& aPixmap, TImageType aType)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
{
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   135
    GFX_LOG_FUNC_CALL();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   136
    if(aType == EImage)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   137
         {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   138
         ImageImpl* image = new ImageImpl();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   139
         // create ARGB32 image
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   140
         image->createFromQPixmap(aPixmap);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   141
         return static_cast<Image*>(image);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   142
         }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   143
     else if(aType == EPixmap)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   144
         {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   145
         Pixmap* pixmap = new Pixmap();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   146
         pixmap->createFromQPixmap(aPixmap);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   147
         return static_cast<Image*>(pixmap);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   148
         }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   149
    return NULL;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   152
/*static*/ Image* GraphicsFactory::createImage(int* aRgbData, int aWidth, int aHeight, bool aHasAlpha, TImageType aType)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
    GFX_LOG_FUNC_CALL();
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   155
    if(aType == EImage)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   156
        {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   157
        ImageImpl* image = new ImageImpl();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   158
        image->createFromRGB(aRgbData, aWidth, aHeight, aHasAlpha); 
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   159
        return static_cast<Image*>(image);    
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   160
        }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   161
    else if(aType == EPixmap)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   162
        {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   163
        Pixmap* pixmap = new Pixmap();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   164
        pixmap->createFromRGB(aRgbData, aWidth, aHeight, aHasAlpha);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   165
        return static_cast<Image*>(pixmap);       
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   166
        }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   167
    return NULL; 
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   168
}
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   169
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   170
/*static*/ ImageLoader* GraphicsFactory::createImageLoader(TImageType aType)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   171
{
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   172
    GFX_LOG_FUNC_CALL();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   173
    ImageloaderImpl* loader = new ImageloaderImpl(aType);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
    return static_cast<ImageLoader*>(loader);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   177
/*static*/ Image* GraphicsFactory::createImage(ImageDataWrapper* aImageDataPtr, TImageType aType)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
    GFX_LOG_FUNC_CALL();
80
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   180
    
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   181
    if(aType == EImage)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   182
         {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   183
         ImageImpl* image = new ImageImpl();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   184
         image->createFromImageData(aImageDataPtr); 
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   185
         return static_cast<Image*>(image);    
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   186
         }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   187
    else if(aType == EPixmap)
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   188
         {
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   189
         Pixmap* pixmap = new Pixmap();
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   190
         pixmap->createFromImageData(aImageDataPtr);
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   191
         return static_cast<Image*>(pixmap);       
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   192
         }
d6dafc5d983f v2.2.19_1
hgs
parents: 57
diff changeset
   193
    return NULL;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
/*static*/ ImageDataWrapper* GraphicsFactory::createImageData(Image* aImage)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
    GFX_LOG_FUNC_CALL();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
    ImageDataWrapperImpl* wrapper = new ImageDataWrapperImpl();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
    if(aImage != NULL)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
        wrapper->setData(aImage);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
    return wrapper;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
/*static*/ PaletteDataWrapper* GraphicsFactory::createPaletteData(PaletteDataWrapper::TDirectData& aDirectData)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
    GFX_LOG_FUNC_CALL();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
    return new DirectPaletteDataWrapper(aDirectData);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
/*static*/ PaletteDataWrapper* GraphicsFactory::createPaletteData(QVector<QRgb>& aIndexedData)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
    GFX_LOG_FUNC_CALL();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
    return new IndexedPaletteDataWrapper(aIndexedData);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
} // namespace GFX
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
} // namespace Java