* replaced the vector classes with a generic one
* fixed wrong member protection in Rect + override for DrawableImpl methods git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1537 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
parent
7500786896
commit
42615a30d9
19 changed files with 503 additions and 364 deletions
|
@ -27,7 +27,7 @@
|
|||
module dsfml.graphics.drawableimpl;
|
||||
|
||||
public import dsfml.system.common;
|
||||
import dsfml.system.vector2;
|
||||
import dsfml.system.vector;
|
||||
|
||||
import dsfml.graphics.irendertarget;
|
||||
import dsfml.graphics.idrawable,
|
||||
|
@ -61,148 +61,146 @@ protected:
|
|||
}
|
||||
|
||||
public:
|
||||
|
||||
void rotate(float angle)
|
||||
override void rotate(float angle)
|
||||
{
|
||||
sfDrawable_Rotate(m_ptr, angle);
|
||||
}
|
||||
|
||||
void move(float offsetX, float offsetY)
|
||||
override void move(float offsetX, float offsetY)
|
||||
{
|
||||
sfDrawable_Move(m_ptr, offsetX, offsetY);
|
||||
}
|
||||
|
||||
void move(Vector2f offset)
|
||||
override void move(Vector2f offset)
|
||||
{
|
||||
sfDrawable_Move(m_ptr, offset.x, offset.y);
|
||||
}
|
||||
|
||||
Vector2f tranformToLocal(Vector2f point)
|
||||
override Vector2f transformToLocal(Vector2f point) const
|
||||
{
|
||||
Vector2f ret;
|
||||
sfDrawable_TransformToLocal(m_ptr, point.x, point.y, &ret.x, &ret.y);
|
||||
return ret;
|
||||
}
|
||||
|
||||
Vector2f tranformToGlobal(Vector2f point)
|
||||
override Vector2f transformToGlobal(Vector2f point) const
|
||||
{
|
||||
Vector2f ret;
|
||||
sfDrawable_TransformToLocal(m_ptr, point.x, point.y, &ret.x, &ret.y);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void render(IRenderTarget window)
|
||||
override void render(IRenderTarget window)
|
||||
{
|
||||
sfRenderWindow_DrawThis((cast(DSFMLObject)window).nativePointer, m_ptr);
|
||||
}
|
||||
|
||||
void renderWithShader(IRenderTarget window, Shader shader)
|
||||
override void renderWithShader(IRenderTarget window, Shader shader)
|
||||
{
|
||||
sfRenderWindow_DrawThisWithShader((cast(DSFMLObject)window).nativePointer, m_ptr, shader.nativePointer);
|
||||
}
|
||||
|
||||
void setPosition(float x, float y)
|
||||
override void setPosition(float x, float y)
|
||||
{
|
||||
sfDrawable_SetPosition(m_ptr, x, y);
|
||||
}
|
||||
|
||||
void setScale(float scaleX, float scaleY)
|
||||
override void setScale(float scaleX, float scaleY)
|
||||
{
|
||||
sfDrawable_SetScale(m_ptr, scaleX, scaleY);
|
||||
}
|
||||
|
||||
void setOrigin(float originX, float originY)
|
||||
override void setOrigin(float originX, float originY)
|
||||
{
|
||||
sfDrawable_SetOrigin(m_ptr, originX, originY);
|
||||
}
|
||||
|
||||
@property
|
||||
{
|
||||
void x(float x)
|
||||
override void x(float x)
|
||||
{
|
||||
sfDrawable_SetX(m_ptr, x);
|
||||
}
|
||||
|
||||
void y(float y)
|
||||
override void y(float y)
|
||||
{
|
||||
sfDrawable_SetY(m_ptr, y);
|
||||
}
|
||||
|
||||
void position(Vector2f vec)
|
||||
override void position(Vector2f vec)
|
||||
{
|
||||
sfDrawable_SetPosition(m_ptr, vec.x, vec.y);
|
||||
}
|
||||
|
||||
void scaleX(float scale)
|
||||
override void scaleX(float scale)
|
||||
{
|
||||
if (scale > 0)
|
||||
sfDrawable_SetScaleX(m_ptr, scale);
|
||||
}
|
||||
|
||||
void scaleY(float scale)
|
||||
override void scaleY(float scale)
|
||||
{
|
||||
if (scale > 0)
|
||||
sfDrawable_SetScaleY(m_ptr, scale);
|
||||
}
|
||||
|
||||
void scale(Vector2f scale)
|
||||
override void scale(Vector2f scale)
|
||||
{
|
||||
if (scale.x > 0 && scale.y > 0)
|
||||
sfDrawable_SetScale(m_ptr, scale.x, scale.y);
|
||||
}
|
||||
|
||||
|
||||
void origin(Vector2f origin)
|
||||
override void origin(Vector2f origin)
|
||||
{
|
||||
sfDrawable_SetOrigin(m_ptr, origin.x, origin.y);
|
||||
}
|
||||
|
||||
void rotation(float angle)
|
||||
override void rotation(float angle)
|
||||
{
|
||||
sfDrawable_SetRotation(m_ptr, angle);
|
||||
}
|
||||
|
||||
void color(Color c)
|
||||
override void color(Color c)
|
||||
{
|
||||
sfDrawable_SetColor(m_ptr, c);
|
||||
}
|
||||
|
||||
void blendMode(BlendMode mode)
|
||||
override void blendMode(BlendMode mode)
|
||||
{
|
||||
sfDrawable_SetBlendMode(m_ptr, mode);
|
||||
}
|
||||
|
||||
Vector2f position()
|
||||
override Vector2f position() const
|
||||
{
|
||||
return Vector2f(sfDrawable_GetX(m_ptr), sfDrawable_GetY(m_ptr));
|
||||
}
|
||||
|
||||
Vector2f scale()
|
||||
override Vector2f scale() const
|
||||
{
|
||||
return Vector2f(sfDrawable_GetScaleX(m_ptr), sfDrawable_GetScaleY(m_ptr));
|
||||
}
|
||||
|
||||
Vector2f origin()
|
||||
override Vector2f origin() const
|
||||
{
|
||||
return Vector2f(sfDrawable_GetOriginX(m_ptr), sfDrawable_GetOriginY(m_ptr));
|
||||
}
|
||||
|
||||
float rotation()
|
||||
override float rotation() const
|
||||
{
|
||||
return sfDrawable_GetRotation(m_ptr);
|
||||
}
|
||||
|
||||
Color color()
|
||||
override Color color() const
|
||||
{
|
||||
return sfDrawable_GetColor(m_ptr);
|
||||
}
|
||||
|
||||
BlendMode blendMode()
|
||||
override BlendMode blendMode() const
|
||||
{
|
||||
return cast(BlendMode)(sfDrawable_GetBlendMode(m_ptr));
|
||||
}
|
||||
|
||||
void scale(Vector2f scale)
|
||||
override void scale(Vector2f scale)
|
||||
{
|
||||
sfDrawable_SetScale(m_ptr, scale.x, scale.y);
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
module dsfml.graphics.idrawable;
|
||||
|
||||
import dsfml.system.vector2;
|
||||
import dsfml.system.vector;
|
||||
|
||||
import dsfml.graphics.irendertarget;
|
||||
import dsfml.graphics.color,
|
||||
|
@ -49,7 +49,7 @@ interface IDrawable
|
|||
* Params:
|
||||
* x = New left coordinate
|
||||
* y = New top coordinate
|
||||
*/
|
||||
*/
|
||||
void setPosition(float x, float y);
|
||||
|
||||
/**
|
||||
|
@ -60,7 +60,7 @@ interface IDrawable
|
|||
* scaleY = New vertical scale > 0
|
||||
*/
|
||||
void setScale(float scalex, float scaley);
|
||||
// in {assert(scalex > 0 && scalex > 0);} // TODO: add in again when interface contracts work
|
||||
// in {assert(scalex > 0 && scalex > 0);} // TODO: add in again when interface contracts work
|
||||
|
||||
/**
|
||||
* Set the origin of the object, in coordinates relative to the
|
||||
|
@ -96,7 +96,7 @@ interface IDrawable
|
|||
*
|
||||
* Params:
|
||||
* vec = new position
|
||||
*/
|
||||
*/
|
||||
void position(Vector2f vec);
|
||||
|
||||
/**
|
||||
|
@ -104,7 +104,7 @@ interface IDrawable
|
|||
*
|
||||
* Params:
|
||||
* scale = New horizontal scale (Strictly positive)
|
||||
*/
|
||||
*/
|
||||
void scaleX(float scale);
|
||||
|
||||
/**
|
||||
|
@ -140,7 +140,7 @@ interface IDrawable
|
|||
*
|
||||
* Params:
|
||||
* angle = Angle of rotation, in degree
|
||||
*/
|
||||
*/
|
||||
void rotation(float angle);
|
||||
|
||||
/**
|
||||
|
@ -148,7 +148,7 @@ interface IDrawable
|
|||
*
|
||||
* Params:
|
||||
* c = New color
|
||||
*/
|
||||
*/
|
||||
void color(Color c);
|
||||
|
||||
/**
|
||||
|
@ -160,6 +160,8 @@ interface IDrawable
|
|||
*/
|
||||
void blendMode(BlendMode mode);
|
||||
|
||||
const
|
||||
{
|
||||
/**
|
||||
* Get the position of the object
|
||||
*
|
||||
|
@ -174,7 +176,7 @@ interface IDrawable
|
|||
*
|
||||
* Returns:
|
||||
* Current scale
|
||||
*/
|
||||
*/
|
||||
Vector2f scale();
|
||||
|
||||
/**
|
||||
|
@ -191,7 +193,7 @@ interface IDrawable
|
|||
*
|
||||
* Returns:
|
||||
* Angle of rotation, in degree
|
||||
*/
|
||||
*/
|
||||
float rotation();
|
||||
|
||||
/**
|
||||
|
@ -199,7 +201,7 @@ interface IDrawable
|
|||
*
|
||||
* Returns:
|
||||
* Current color
|
||||
*/
|
||||
*/
|
||||
Color color();
|
||||
|
||||
/**
|
||||
|
@ -209,7 +211,8 @@ interface IDrawable
|
|||
* Current blending mode
|
||||
*/
|
||||
BlendMode blendMode();
|
||||
}
|
||||
} // const
|
||||
} // @property
|
||||
|
||||
/**
|
||||
* Rotate the object
|
||||
|
@ -217,7 +220,7 @@ interface IDrawable
|
|||
*
|
||||
* Params:
|
||||
* angle = Angle of rotation in degree
|
||||
*/
|
||||
*/
|
||||
void rotate(float angle);
|
||||
|
||||
/**
|
||||
|
@ -227,7 +230,7 @@ interface IDrawable
|
|||
* Params:
|
||||
* offsetX = Offset on the X axis
|
||||
* offsetY = Offset on the Y axis
|
||||
*/
|
||||
*/
|
||||
void move(float offsetX, float offsetY);
|
||||
|
||||
/**
|
||||
|
@ -236,7 +239,7 @@ interface IDrawable
|
|||
*
|
||||
* Params:
|
||||
* offset = Amount of units to move the object of
|
||||
*/
|
||||
*/
|
||||
void move(Vector2f offset);
|
||||
|
||||
/**
|
||||
|
@ -248,8 +251,8 @@ interface IDrawable
|
|||
*
|
||||
* Returns:
|
||||
* Transformed point
|
||||
*/
|
||||
Vector2f tranformToLocal(Vector2f point);
|
||||
*/
|
||||
Vector2f tranformToLocal(Vector2f point) const;
|
||||
|
||||
/**
|
||||
* Transform a point from local coordinates into global coordinates
|
||||
|
@ -260,15 +263,15 @@ interface IDrawable
|
|||
*
|
||||
* Returns:
|
||||
* Transformed point
|
||||
*/
|
||||
Vector2f tranformToGlobal(Vector2f point);
|
||||
*/
|
||||
Vector2f tranformToGlobal(Vector2f point) const;
|
||||
|
||||
/**
|
||||
* Render the specific geometry of the object
|
||||
*
|
||||
* Params:
|
||||
* window = Target into which render the object
|
||||
*/
|
||||
*/
|
||||
void render(IRenderTarget window);
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
module dsfml.graphics.irendertarget;
|
||||
|
||||
import dsfml.system.vector2;
|
||||
import dsfml.system.vector;
|
||||
import dsfml.graphics.idrawable;
|
||||
import dsfml.graphics.rect;
|
||||
import dsfml.graphics.shader;
|
||||
|
|
|
@ -56,14 +56,11 @@ else
|
|||
*/
|
||||
struct Rect(T)
|
||||
{
|
||||
|
||||
private:
|
||||
T left; // Left coordinate of the rectangle
|
||||
T top; // Top coordinate of the rectangle
|
||||
T width; // width
|
||||
T height; // height
|
||||
|
||||
public:
|
||||
static if (!isIntegerType!(T) && !isRealType!(T))
|
||||
{
|
||||
static assert (0, "This type is not supported by Rectangle");
|
||||
|
|
|
@ -29,7 +29,7 @@ module dsfml.graphics.renderimage;
|
|||
import dsfml.system.common,
|
||||
dsfml.system.exception,
|
||||
dsfml.system.stringutil,
|
||||
dsfml.system.vector2;
|
||||
dsfml.system.vector;
|
||||
|
||||
import dsfml.graphics.idrawable,
|
||||
dsfml.graphics.image,
|
||||
|
|
|
@ -44,7 +44,7 @@ import dsfml.window.event,
|
|||
|
||||
import dsfml.system.common,
|
||||
dsfml.system.stringutil,
|
||||
dsfml.system.vector2;
|
||||
dsfml.system.vector;
|
||||
|
||||
/**
|
||||
* Simple wrapper for Window that allows easy 2D rendering.
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
module dsfml.graphics.shape;
|
||||
|
||||
import dsfml.system.vector2;
|
||||
import dsfml.system.vector;
|
||||
|
||||
import dsfml.graphics.blendmode;
|
||||
import dsfml.graphics.color;
|
||||
|
|
|
@ -32,7 +32,7 @@ import dsfml.graphics.drawableimpl;
|
|||
import dsfml.graphics.image;
|
||||
import dsfml.graphics.rect;
|
||||
|
||||
import dsfml.system.vector2;
|
||||
import dsfml.system.vector;
|
||||
|
||||
/**
|
||||
* Sprite defines a sprite : texture, transformations,
|
||||
|
@ -160,7 +160,7 @@ public:
|
|||
* Returns:
|
||||
* Color of pixel
|
||||
*/
|
||||
Color getPixel(uint x, uint y)
|
||||
Color getPixel(uint x, uint y) const
|
||||
{
|
||||
return sfSprite_GetPixel(m_ptr, x, y);
|
||||
}
|
||||
|
@ -211,7 +211,7 @@ public:
|
|||
* Returns:
|
||||
* Size of the sprite
|
||||
*/
|
||||
Vector2f size()
|
||||
Vector2f size() const
|
||||
{
|
||||
return Vector2f(sfSprite_GetWidth(m_ptr), sfSprite_GetHeight(m_ptr));
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ private:
|
|||
void function(SFMLClass, float, float) sfSprite_Resize;
|
||||
void function(SFMLClass, int) sfSprite_FlipX;
|
||||
void function(SFMLClass, int) sfSprite_FlipY;
|
||||
SFMLClass function(SFMLClass) sfSprite_GetImage;
|
||||
SFMLClass function(SFMLClass) sfSprite_GetImage;
|
||||
IntRect function(SFMLClass) sfSprite_GetSubRect;
|
||||
float function(SFMLClass) sfSprite_GetWidth;
|
||||
float function(SFMLClass) sfSprite_GetHeight;
|
||||
|
|
|
@ -33,7 +33,7 @@ import dsfml.graphics.drawableimpl;
|
|||
import dsfml.graphics.rect;
|
||||
|
||||
import dsfml.system.stringutil;
|
||||
import dsfml.system.vector2;
|
||||
import dsfml.system.vector;
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -29,7 +29,7 @@ module dsfml.graphics.view;
|
|||
import dsfml.graphics.rect;
|
||||
|
||||
import dsfml.system.common,
|
||||
dsfml.system.vector2;
|
||||
dsfml.system.vector;
|
||||
|
||||
/**
|
||||
* This class defines a view (position, size and zoom) ;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue