Sha256: f425449c373d747b0d94b3894e1f3536845bf518bbe7f1b42e1dae6daf9b5ae4

Contents?: true

Size: 1.27 KB

Versions: 30

Compression:

Stored size: 1.27 KB

Contents

#include "reflex/ruby/filter.h"


#include <rays/ruby/painter.h>
#include <rays/ruby/image.h>
#include "defs.h"


RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::Filter)

#define THIS      to<Reflex::Filter*>(self)

#define CHECK     RUCY_CHECK_OBJ(Reflex::Filter, self)

#define CALL(fun) RUCY_CALL_SUPER(THIS, fun)


static
RUCY_DEF_ALLOC(alloc, klass)
{
	return value(new Reflex::RubyFilter<Reflex::Filter>, klass);
}
RUCY_END

static
RUCY_DEF1(initialize, arg)
{
	CHECK;

	THIS->set_shader(to<Rays::Shader>(arg));
}
RUCY_END

static
RUCY_DEF2(apply, painter, image)
{
	CHECK;
	CALL(apply(to<Rays::Painter*>(painter), to<const Rays::Image&>(image)));
}
RUCY_END

static
RUCY_DEF1(set_shader, shader)
{
	CHECK;
	THIS->set_shader(to<Rays::Shader>(shader));
}
RUCY_END

static
RUCY_DEF0(get_shader)
{
	CHECK;
	return value(THIS->shader());
}
RUCY_END


static Class cFilter;

void
Init_reflex_filter ()
{
	Module mReflex = define_module("Reflex");

	cFilter = mReflex.define_class("Filter");
	cFilter.define_alloc_func(alloc);
	cFilter.define_private_method("initialize", initialize);
	cFilter.define_method("apply", apply);
	cFilter.define_method("shader=", set_shader);
	cFilter.define_method("shader",  get_shader);
}


namespace Reflex
{


	Class
	filter_class ()
	{
		return cFilter;
	}


}// Reflex

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
reflexion-0.2.1 ext/reflex/filter.cpp
reflexion-0.2 ext/reflex/filter.cpp
reflexion-0.1.57 ext/reflex/filter.cpp
reflexion-0.1.56 ext/reflex/filter.cpp
reflexion-0.1.55 ext/reflex/filter.cpp
reflexion-0.1.54 ext/reflex/filter.cpp
reflexion-0.1.53 ext/reflex/filter.cpp
reflexion-0.1.52 ext/reflex/filter.cpp
reflexion-0.1.51 ext/reflex/filter.cpp
reflexion-0.1.50 ext/reflex/filter.cpp
reflexion-0.1.49 ext/reflex/filter.cpp
reflexion-0.1.48 ext/reflex/filter.cpp
reflexion-0.1.47 ext/reflex/filter.cpp
reflexion-0.1.46 ext/reflex/filter.cpp
reflexion-0.1.45 ext/reflex/filter.cpp
reflexion-0.1.44 ext/reflex/filter.cpp
reflexion-0.1.43 ext/reflex/filter.cpp
reflexion-0.1.42 ext/reflex/filter.cpp
reflexion-0.1.41 ext/reflex/filter.cpp
reflexion-0.1.40 ext/reflex/filter.cpp