T4: Advanced Rendering

Warning

This tutorial is in construction.

While there are several renderer classes available for you to use in HIRO_DRAW library, sometimes, you may need a specific rendering implemented in your module. In this tutorial we learn how to derive and create custom renderer classes.

Custom Renderer

A snippet of code simmilar to the one used in T2: Creating Custom Modules will be used. Now, however, the rendering will be done via new custom classes MyRenderer and MyStyle as shown bellow.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
class MyGadget : public hiro::Gadget
{
public:
  MyGadget(const hiro::Resource *res) : hiro::Gadget(res) {}

  virtual void Initialize() override
  {
    Gadget::Initialize();
    renderer_ = std::make_shared<MyRenderer>();
    style_ = std::make_shared<MyStyle>();
    this->AddRenderer(renderer_, style_);
  }

private:
    PMyRenderer renderer_;
    PMyStyle style_;
};