Calling operator overload from a pointer
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
284078dcac
commit
7968d0a8ef
Binary file not shown.
67
main.cpp
67
main.cpp
@ -1,71 +1,20 @@
|
||||
#include <memory>
|
||||
#define OLC_PGE_APPLICATION
|
||||
#include "pixelGameEngine.h"
|
||||
|
||||
using namespace olc;
|
||||
|
||||
class BoxBorder : public olc::PixelGameEngine
|
||||
{
|
||||
public:
|
||||
BoxBorder()
|
||||
{
|
||||
sAppName = "Box Border";
|
||||
}
|
||||
|
||||
public:
|
||||
Decal*box;
|
||||
|
||||
void DrawBorderBox(const vd2d&pos,const vd2d&size,const vd2d&borderScale={1,1}) {
|
||||
vd2d scaledCorner={13*(float)borderScale.x,13*(float)borderScale.y};
|
||||
DrawPartialDecal(pos,scaledCorner,box,{0,0},{13,13}); //Upper-Left Corner
|
||||
vd2d ULOffset={13*(float)borderScale.x,0};
|
||||
DrawPartialDecal(pos+ULOffset,{(float)size.x-26*(float)borderScale.x,13*(float)borderScale.y},box,{13,0},{91,13}); //Top
|
||||
vd2d UROffset={size.x-13*(float)borderScale.x,0};
|
||||
DrawPartialDecal(pos+UROffset,scaledCorner,box,{104,0},{13,13}); //Upper-Right Corner
|
||||
vd2d ULBottomOffset={0,13*(float)borderScale.y};
|
||||
DrawPartialDecal(pos+ULBottomOffset,{13*(float)borderScale.x,(float)size.y-25*(float)borderScale.y},box,{0,13},{13,73});//Left
|
||||
vd2d BLOffset={0,size.y-13*(float)borderScale.y};
|
||||
DrawPartialDecal(pos+BLOffset,scaledCorner,box,{0,86},{13,13}); //Bottom-Left Corner
|
||||
vd2d BLLeftOffset={13*(float)borderScale.x,size.y-(13+0.05)*(float)borderScale.y};
|
||||
DrawPartialDecal(pos+BLLeftOffset,{(float)size.x-26*(float)borderScale.x,13*(float)borderScale.y},box,{13,86},{91,13}); //Bottom
|
||||
vd2d BROffset={size.x-13*(float)borderScale.x,size.y-13*(float)borderScale.y};
|
||||
DrawPartialDecal(pos+BROffset,scaledCorner,box,{104,86},{13,13}); //Bottom-Right Corner
|
||||
vd2d TROffset={size.x-13*(float)borderScale.x,13*(float)borderScale.y};
|
||||
DrawPartialDecal(pos+TROffset,{13*(float)borderScale.x,(float)size.y-25*(float)borderScale.y},box,{104,13},{13,73});//Right
|
||||
}
|
||||
|
||||
bool OnUserCreate() override
|
||||
{
|
||||
box = new Decal(new Sprite("border.png"),false,true);
|
||||
return true;
|
||||
}
|
||||
|
||||
vd2d borderSize={1,1};
|
||||
|
||||
bool OnUserUpdate(float fElapsedTime) override
|
||||
{
|
||||
if (GetMouseWheel()>0) {
|
||||
borderSize.x+=0.1;
|
||||
borderSize.y+=0.1;
|
||||
} else
|
||||
if (GetMouseWheel()<0) {
|
||||
borderSize.x-=0.1;
|
||||
borderSize.y-=0.1;
|
||||
}
|
||||
|
||||
vd2d boxPos={24,24};
|
||||
vd2d boxSize=GetMousePos()-boxPos;
|
||||
FillRectDecal(boxPos,boxSize,GREY);
|
||||
DrawBorderBox(boxPos,boxSize,borderSize);
|
||||
return true;
|
||||
struct MyStruct{
|
||||
int val=4;
|
||||
friend std::ostream&operator<<(std::ostream&os,MyStruct&rhs){
|
||||
printf("Called\n");
|
||||
return os;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
BoxBorder demo;
|
||||
if (demo.Construct(256, 240, 4, 4))
|
||||
demo.Start();
|
||||
|
||||
MyStruct*st=new MyStruct({5});
|
||||
std::cout<<*st<<std::endl;
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user