~ubuntu-branches/ubuntu/wily/freerdp/wily-proposed

« back to all changes in this revision

Viewing changes to libfreerdp-gdi/brush.c

  • Committer: Package Import Robot
  • Author(s): Martin Pitt, Jeremy Bicha, Jean-Louis Dupond, Martin Pitt
  • Date: 2012-01-31 10:02:14 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20120131100214-jaok3uwvni7sqxth
Tags: 1.0.0-0git1
Upload current Debian packaging git to get this rolling for precise.

[ Jeremy Bicha ]
* New upstream release. Closes: #647498.
* Updated symbols and bumped soname
* debian/control:
  - Added new build dependencies
  - Bump Standards-Version to 3.9.2
* debian/source/format: Set to 3.0 (quilt)
* debian/rules: Turn on strict symbols checking
* debian/watch: Watch github

[ Jean-Louis Dupond ]
* debian/control: Updated homepage
* debian/copyright: Reflect upstream switch to the Apache license

[ Martin Pitt ]
* debian/libfreerdp0.symbols: Fix version number, should
  be 1.0~beta5, not 1.0-beta5.
* debian/control: Add libavcodec-dev build dependency, upstream build system
  checks for that. Thanks Jean-Louis Dupond!

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * FreeRDP: A Remote Desktop Protocol Client
 
3
 * GDI Brush Functions
 
4
 *
 
5
 * Copyright 2010-2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
 
6
 *
 
7
 * Licensed under the Apache License, Version 2.0 (the "License");
 
8
 * you may not use this file except in compliance with the License.
 
9
 * You may obtain a copy of the License at
 
10
 *
 
11
 *     http://www.apache.org/licenses/LICENSE-2.0
 
12
 *
 
13
 * Unless required by applicable law or agreed to in writing, software
 
14
 * distributed under the License is distributed on an "AS IS" BASIS,
 
15
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
16
 * See the License for the specific language governing permissions and
 
17
 * limitations under the License.
 
18
 */
 
19
 
 
20
/* GDI Brush Functions: http://msdn.microsoft.com/en-us/library/dd183395/ */
 
21
 
 
22
#include <stdio.h>
 
23
#include <string.h>
 
24
#include <stdlib.h>
 
25
 
 
26
#include <freerdp/freerdp.h>
 
27
#include <freerdp/gdi/gdi.h>
 
28
 
 
29
#include <freerdp/gdi/32bpp.h>
 
30
#include <freerdp/gdi/16bpp.h>
 
31
#include <freerdp/gdi/8bpp.h>
 
32
 
 
33
#include <freerdp/gdi/brush.h>
 
34
 
 
35
p_PatBlt PatBlt_[5] =
 
36
{
 
37
        NULL,
 
38
        PatBlt_8bpp,
 
39
        PatBlt_16bpp,
 
40
        NULL,
 
41
        PatBlt_32bpp
 
42
};
 
43
 
 
44
/**
 
45
 * Create a new solid brush.\n
 
46
 * @msdn{dd183518}
 
47
 * @param crColor brush color
 
48
 * @return new brush
 
49
 */
 
50
 
 
51
HGDI_BRUSH gdi_CreateSolidBrush(GDI_COLOR crColor)
 
52
{
 
53
        HGDI_BRUSH hBrush = (HGDI_BRUSH) malloc(sizeof(GDI_BRUSH));
 
54
        hBrush->objectType = GDIOBJECT_BRUSH;
 
55
        hBrush->style = GDI_BS_SOLID;
 
56
        hBrush->color = crColor;
 
57
        return hBrush;
 
58
}
 
59
 
 
60
/**
 
61
 * Create a new pattern brush.\n
 
62
 * @msdn{dd183508}
 
63
 * @param hbmp pattern bitmap
 
64
 * @return new brush
 
65
 */
 
66
 
 
67
HGDI_BRUSH gdi_CreatePatternBrush(HGDI_BITMAP hbmp)
 
68
{
 
69
        HGDI_BRUSH hBrush = (HGDI_BRUSH) malloc(sizeof(GDI_BRUSH));
 
70
        hBrush->objectType = GDIOBJECT_BRUSH;
 
71
        hBrush->style = GDI_BS_PATTERN;
 
72
        hBrush->pattern = hbmp;
 
73
        return hBrush;
 
74
}
 
75
 
 
76
/**
 
77
 * Perform a pattern blit operation on the given pixel buffer.\n
 
78
 * @msdn{dd162778}
 
79
 * @param hdc device context
 
80
 * @param nXLeft x1
 
81
 * @param nYLeft y1
 
82
 * @param nWidth width
 
83
 * @param nHeight height
 
84
 * @param rop raster operation code
 
85
 * @return 1 if successful, 0 otherwise
 
86
 */
 
87
 
 
88
int gdi_PatBlt(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, int rop)
 
89
{
 
90
        p_PatBlt _PatBlt = PatBlt_[IBPP(hdc->bitsPerPixel)];
 
91
 
 
92
        if (_PatBlt != NULL)
 
93
                return _PatBlt(hdc, nXLeft, nYLeft, nWidth, nHeight, rop);
 
94
        else
 
95
                return 0;
 
96
}