Skip to content

Instantly share code, notes, and snippets.

View Lavesson's full-sized avatar

Eric Lavesson Lavesson

View GitHub Profile
namespace Pattern {
template <typename... TArgs> class Observable;
template <typename... TArgs> class Observer {
virtual void notify(TArgs... args) = 0;
friend class Observable<TArgs...>;
public:
virtual ~Observer() {}
};
#include <memory>
int main()
{
// Create the device, buffer and a mesh
auto device = std::unique_ptr<Device>(new Device());
auto buffer = device->CreateVertexBuffer();
auto mesh = std::unique_ptr<Mesh>(new Mesh(buffer.get()));
// ... Doing a bunch of stuff
@Lavesson
Lavesson / case2-demo.cpp
Created March 21, 2013 00:25
Blog post demo. Case 2.
int main()
{
// Create the device, buffer and a mesh
auto device = new Device();
auto buffer = device->CreateVertexBuffer();
auto mesh = new Mesh(buffer);
// ... Doing a bunch of stuff
// Cleanup
@Lavesson
Lavesson / case1-demo.cpp
Last active December 15, 2015 05:29
Blog post demo. Case 1.
int main()
{
// Create the device, buffer and a mesh
auto device = new Device();
auto buffer = device->CreateVertexBuffer();
auto mesh = new Mesh(buffer);
// ... Doing a bunch of stuff
// Cleanup
Device device = new Device();
VertexBuffer* buffer = device->CreateVertexBuffer();
Mesh* mesh = new Mesh(buffer);
// ...
@Lavesson
Lavesson / device-demo.hpp
Last active December 15, 2015 05:29
Blogpost C++ demo
class Device
{
public:
Device();
~Device();
VertexBuffer* CreateVertexBuffer(const VertexDescription& desc);
// ...
};
@Lavesson
Lavesson / Mesh.hpp
Last active December 15, 2015 05:29
class Mesh
{
public:
Mesh(const VertexBuffer* const buffer);
~Mesh();
};
#include <memory>
class Device
{
public:
Device();
~Device();
std::unique_ptr<VertexBuffer> CreateVertexBuffer(const VertexDescription& desc);
};