oops
This commit is contained in:
parent
443a21d7ac
commit
9cd2593f47
@ -4,7 +4,7 @@
|
||||
#include <future>
|
||||
#include <optional>
|
||||
#include "mingl/gui/sprite.h"
|
||||
#include "pixelManager/pixelManager.h"
|
||||
#include "utils.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -13,8 +13,11 @@ public:
|
||||
/*!
|
||||
* @brief optional actual Sprite
|
||||
* We need to use an optional to init the object through a function, that can be used with std::async
|
||||
* mutable because for some reason MinGL stores a Vec2D with the pixel data,
|
||||
* so we modify it each time we need to draw it
|
||||
* Else, we could copy the Sprite each time, but copying a bunch of images each frame doesn't seems like a good idea
|
||||
*/
|
||||
optional<nsGui::Sprite> sp;
|
||||
mutable optional<nsGui::Sprite> sp;
|
||||
|
||||
/*!
|
||||
* @brief load a sprite asynchronously
|
||||
|
||||
@ -44,9 +44,6 @@ typedef nsGui::GlutFont::GlutFonts Font;
|
||||
#define ADD_SPRITE_TASK(X) ADD_SPRITE_TASK2(X, X)
|
||||
#define ADD_SPRITE_TASK2(X, Y) tasks.push_back((X).asyncLoad("assets/"#Y".si2"));
|
||||
|
||||
typedef future<void> Task;
|
||||
|
||||
|
||||
class PixelManager{
|
||||
public:
|
||||
MinGL& window;
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
#define GUARD_UTILS_H
|
||||
|
||||
#include<vector>
|
||||
#include<future>
|
||||
#include "mingl/mingl.h"
|
||||
|
||||
// hardcoded values
|
||||
@ -49,9 +50,11 @@ enum class WinValue{
|
||||
|
||||
typedef nsGraphics::Vec2D Position;
|
||||
typedef unsigned playerID;
|
||||
typedef future<void> Task;
|
||||
#define PLAYER1 0
|
||||
#define PLAYER2 1
|
||||
|
||||
|
||||
/*!
|
||||
* @brief tells if 2 lines are colliding in a 1 dimensional space. Didn't want to use Position because of the semantic with x and y
|
||||
* @param[in] start1 : position of the first point of the first line
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
Task MySprite::asyncLoad(const string& fname){
|
||||
DEBUG_MSG("Load file " << fname)
|
||||
return std::async(std::launch::async, [fname, this]() -> void {
|
||||
sp = std::make_unique<nsGui::Sprite>(fname);
|
||||
sp.emplace(fname);
|
||||
});
|
||||
}
|
||||
|
||||
@ -23,5 +23,5 @@ void MySprite::mirror(MySprite& msp) {
|
||||
outPixels.push_back(inPixels[rowOffset + rowSize - j - 1]);
|
||||
}
|
||||
}
|
||||
sp = std::make_unique<nsGui::Sprite>(outPixels, rowSize);
|
||||
sp.emplace(outPixels, rowSize);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user