Download
Documentation
Development
Examples
Donations
Contributions
Forum
Sources
API
SWRender
swr_graphic_context.h
1
/*
2
** ClanLib SDK
3
** Copyright (c) 1997-2013 The ClanLib Team
4
**
5
** This software is provided 'as-is', without any express or implied
6
** warranty. In no event will the authors be held liable for any damages
7
** arising from the use of this software.
8
**
9
** Permission is granted to anyone to use this software for any purpose,
10
** including commercial applications, and to alter it and redistribute it
11
** freely, subject to the following restrictions:
12
**
13
** 1. The origin of this software must not be misrepresented; you must not
14
** claim that you wrote the original software. If you use this software
15
** in a product, an acknowledgment in the product documentation would be
16
** appreciated but is not required.
17
** 2. Altered source versions must be plainly marked as such, and must not be
18
** misrepresented as being the original software.
19
** 3. This notice may not be removed or altered from any source distribution.
20
**
21
** Note: Some of the libraries ClanLib may link to may have additional
22
** requirements or restrictions.
23
**
24
** File Author(s):
25
**
26
** Mark Page
27
*/
28
29
30
#pragma once
31
32
#include "api_swrender.h"
33
34
35
#include "../Display/Render/graphic_context.h"
36
37
namespace
clan
38
{
41
42
class
PixelCommand;
43
class
PixelPipeline;
44
class
GraphicContext_SWRender_Impl;
45
47
class
API_SWRender
GraphicContext_SWRender
:
public
GraphicContext
48
{
50
public
:
51
// \brief Create a null instance
52
GraphicContext_SWRender
() {}
53
55
GraphicContext_SWRender
(
GraphicContext
&gc);
56
57
~
GraphicContext_SWRender
();
58
60
public
:
62
bool
is_null
()
const
{
return
!impl; }
63
65
void
throw_if_null()
const
;
66
68
PixelPipeline *get_pipeline()
const
;
69
71
public
:
72
void
draw_pixels(
float
x,
float
y,
float
zoom_x,
float
zoom_y,
const
PixelBuffer
&pixel_buffer,
const
Rect
&src_rect,
const
Colorf
&color);
73
void
draw_pixels_bicubic(
int
x,
int
y,
int
zoom_number,
int
zoom_denominator,
const
PixelBuffer
&pixels);
74
76
template
<
typename
T>
77
void
queue_command
(T *command) {
queue_command
(std::unique_ptr<T>(command)); }
78
void
queue_command(std::unique_ptr<PixelCommand> &command);
79
81
private
:
82
std::shared_ptr<GraphicContext_SWRender_Impl> impl;
83
};
84
85
}
86
clan::Colorf
Floating point color description class (for float).
Definition:
color.h:661
clan::GraphicContext_SWRender::is_null
bool is_null() const
Attributes.
Definition:
swr_graphic_context.h:62
clan::PixelBuffer
Pixel data container.
Definition:
pixel_buffer.h:69
clan::Rect
2D (left,top,right,bottom) rectangle structure - Integer
Definition:
rect.h:453
clan::GraphicContext_SWRender::queue_command
void queue_command(T *command)
Queues a pixel command in the pipeline.
Definition:
swr_graphic_context.h:77
clan::GraphicContext
Interface to drawing graphics.
Definition:
graphic_context.h:257
clan::GraphicContext_SWRender
SWRender Graphic Context.
Definition:
swr_graphic_context.h:47
clan::GraphicContext_SWRender::GraphicContext_SWRender
GraphicContext_SWRender()
Construction.
Definition:
swr_graphic_context.h:52