xref: /trunk/main/vcl/inc/os2/salbmp.h (revision 5d328669834268fa077da8fd0d9b44cc5ce2793b)
1*24f6443dSAndrew Rist /**************************************************************
2fc9fd3f1SPedro Giffuni  *
3*24f6443dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*24f6443dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*24f6443dSAndrew Rist  * distributed with this work for additional information
6*24f6443dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*24f6443dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*24f6443dSAndrew Rist  * "License"); you may not use this file except in compliance
9*24f6443dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10fc9fd3f1SPedro Giffuni  *
11*24f6443dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12fc9fd3f1SPedro Giffuni  *
13*24f6443dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*24f6443dSAndrew Rist  * software distributed under the License is distributed on an
15*24f6443dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*24f6443dSAndrew Rist  * KIND, either express or implied.  See the License for the
17*24f6443dSAndrew Rist  * specific language governing permissions and limitations
18*24f6443dSAndrew Rist  * under the License.
19fc9fd3f1SPedro Giffuni  *
20*24f6443dSAndrew Rist  *************************************************************/
21*24f6443dSAndrew Rist 
22*24f6443dSAndrew Rist 
23fc9fd3f1SPedro Giffuni 
24fc9fd3f1SPedro Giffuni #ifndef _SV_SALBMP_H
25fc9fd3f1SPedro Giffuni #define _SV_SALBMP_H
26fc9fd3f1SPedro Giffuni 
27fc9fd3f1SPedro Giffuni #include <tools/gen.hxx>
28fc9fd3f1SPedro Giffuni #include <salbmp.hxx>
29fc9fd3f1SPedro Giffuni 
30fc9fd3f1SPedro Giffuni // --------------
31fc9fd3f1SPedro Giffuni // - SalBitmap    -
32fc9fd3f1SPedro Giffuni // --------------
33fc9fd3f1SPedro Giffuni 
34fc9fd3f1SPedro Giffuni struct    BitmapBuffer;
35fc9fd3f1SPedro Giffuni class    BitmapColor;
36fc9fd3f1SPedro Giffuni class    BitmapPalette;
37fc9fd3f1SPedro Giffuni class    SalGraphics;
38fc9fd3f1SPedro Giffuni 
39fc9fd3f1SPedro Giffuni #define HANDLE ULONG
40fc9fd3f1SPedro Giffuni #define HBITMAP ULONG
41fc9fd3f1SPedro Giffuni 
42fc9fd3f1SPedro Giffuni class Os2SalBitmap : public SalBitmap
43fc9fd3f1SPedro Giffuni {
44fc9fd3f1SPedro Giffuni private:
45fc9fd3f1SPedro Giffuni 
46fc9fd3f1SPedro Giffuni     Size                maSize;
47fc9fd3f1SPedro Giffuni     HANDLE              mhDIB;
48fc9fd3f1SPedro Giffuni     HANDLE              mhDIB1Subst;
49fc9fd3f1SPedro Giffuni     HBITMAP             mhDDB;
50fc9fd3f1SPedro Giffuni     USHORT              mnBitCount;
51fc9fd3f1SPedro Giffuni 
52fc9fd3f1SPedro Giffuni public:
53fc9fd3f1SPedro Giffuni 
ImplGethDIB()54fc9fd3f1SPedro Giffuni     HANDLE              ImplGethDIB() const { return mhDIB; }
ImplGethDDB()55fc9fd3f1SPedro Giffuni     HBITMAP             ImplGethDDB() const { return mhDDB; }
ImplGethDIB1Subst()56fc9fd3f1SPedro Giffuni     HANDLE              ImplGethDIB1Subst() const { return mhDIB1Subst; }
57fc9fd3f1SPedro Giffuni 
58fc9fd3f1SPedro Giffuni     void                ImplReplacehDIB1Subst( HANDLE hDIB1Subst );
59fc9fd3f1SPedro Giffuni 
60fc9fd3f1SPedro Giffuni     static HANDLE       ImplCreateDIB( const Size& rSize, USHORT nBitCount, const BitmapPalette& rPal );
61fc9fd3f1SPedro Giffuni     static HANDLE       ImplCreateDIB4FromDIB1( HANDLE hDIB1 );
62fc9fd3f1SPedro Giffuni     static HANDLE       ImplCopyDIBOrDDB( HANDLE hHdl, bool bDIB );
63fc9fd3f1SPedro Giffuni     static USHORT       ImplGetDIBColorCount( HANDLE hDIB );
64fc9fd3f1SPedro Giffuni     static void         ImplDecodeRLEBuffer( const PM_BYTE* pSrcBuf, PM_BYTE* pDstBuf,
65fc9fd3f1SPedro Giffuni                                              const Size& rSizePixel, bool bRLE4 );
66fc9fd3f1SPedro Giffuni 
67fc9fd3f1SPedro Giffuni     //BOOL                Create( HANDLE hBitmap, BOOL bDIB, BOOL bCopyHandle );
68fc9fd3f1SPedro Giffuni 
69fc9fd3f1SPedro Giffuni public:
70fc9fd3f1SPedro Giffuni 
71fc9fd3f1SPedro Giffuni                         Os2SalBitmap();
72fc9fd3f1SPedro Giffuni                         ~Os2SalBitmap();
73fc9fd3f1SPedro Giffuni 
74fc9fd3f1SPedro Giffuni public:
75fc9fd3f1SPedro Giffuni 
76fc9fd3f1SPedro Giffuni     //BOOL                Create( const Size& rSize, USHORT nBitCount, const BitmapPalette& rPal );
77fc9fd3f1SPedro Giffuni     //BOOL                Create( const SalBitmap& rSalBmpImpl );
78fc9fd3f1SPedro Giffuni     //BOOL                Create( const SalBitmap& rSalBmpImpl, SalGraphics* pGraphics );
79fc9fd3f1SPedro Giffuni     //BOOL                Create( const SalBitmap& rSalBmpImpl, USHORT nNewBitCount );
80fc9fd3f1SPedro Giffuni 
81fc9fd3f1SPedro Giffuni     //void                Destroy();
82fc9fd3f1SPedro Giffuni 
83fc9fd3f1SPedro Giffuni     //Size                GetSize() const { return maSize; }
84fc9fd3f1SPedro Giffuni     //USHORT              GetBitCount() const { return mnBitCount; }
85fc9fd3f1SPedro Giffuni 
86fc9fd3f1SPedro Giffuni     //BitmapBuffer*     AcquireBuffer( bool bReadOnly );
87fc9fd3f1SPedro Giffuni     //void              ReleaseBuffer( BitmapBuffer* pBuffer, bool bReadOnly );
88fc9fd3f1SPedro Giffuni     bool                        Create( HANDLE hBitmap, bool bDIB, bool bCopyHandle );
89fc9fd3f1SPedro Giffuni     virtual bool                Create( const Size& rSize, USHORT nBitCount, const BitmapPalette& rPal );
90fc9fd3f1SPedro Giffuni     virtual bool                Create( const SalBitmap& rSalBmpImpl );
91fc9fd3f1SPedro Giffuni     virtual bool                Create( const SalBitmap& rSalBmpImpl, SalGraphics* pGraphics );
92fc9fd3f1SPedro Giffuni     virtual bool                Create( const SalBitmap& rSalBmpImpl, USHORT nNewBitCount );
93fc9fd3f1SPedro Giffuni 
94fc9fd3f1SPedro Giffuni     virtual void                Destroy();
95fc9fd3f1SPedro Giffuni 
GetSize()96fc9fd3f1SPedro Giffuni     virtual Size                GetSize() const { return maSize; }
GetBitCount()97fc9fd3f1SPedro Giffuni     virtual USHORT              GetBitCount() const { return mnBitCount; }
98fc9fd3f1SPedro Giffuni 
99fc9fd3f1SPedro Giffuni     virtual BitmapBuffer*       AcquireBuffer( bool bReadOnly );
100fc9fd3f1SPedro Giffuni     virtual void                ReleaseBuffer( BitmapBuffer* pBuffer, bool bReadOnly );
101fc9fd3f1SPedro Giffuni     virtual bool                GetSystemData( BitmapSystemData& rData );
102fc9fd3f1SPedro Giffuni };
103fc9fd3f1SPedro Giffuni 
104fc9fd3f1SPedro Giffuni #endif // _SV_SALBMP_H
105