Keep information on first file creation year, and update my email address yet again.
		
			
				
	
	
		
			105 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
** viewport-binding.cpp
 | 
						|
**
 | 
						|
** This file is part of mkxp.
 | 
						|
**
 | 
						|
** Copyright (C) 2013 - 2021 Amaryllis Kulla <ancurio@mapleshrine.eu>
 | 
						|
**
 | 
						|
** mkxp is free software: you can redistribute it and/or modify
 | 
						|
** it under the terms of the GNU General Public License as published by
 | 
						|
** the Free Software Foundation, either version 2 of the License, or
 | 
						|
** (at your option) any later version.
 | 
						|
**
 | 
						|
** mkxp is distributed in the hope that it will be useful,
 | 
						|
** but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
** GNU General Public License for more details.
 | 
						|
**
 | 
						|
** You should have received a copy of the GNU General Public License
 | 
						|
** along with mkxp.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
*/
 | 
						|
 | 
						|
#include "viewport.h"
 | 
						|
#include "sharedstate.h"
 | 
						|
#include "disposable-binding.h"
 | 
						|
#include "flashable-binding.h"
 | 
						|
#include "sceneelement-binding.h"
 | 
						|
#include "binding-util.h"
 | 
						|
#include "binding-types.h"
 | 
						|
 | 
						|
DEF_TYPE(Viewport);
 | 
						|
 | 
						|
RB_METHOD(viewportInitialize)
 | 
						|
{
 | 
						|
	Viewport *v;
 | 
						|
 | 
						|
	if (argc == 0 && rgssVer >= 3)
 | 
						|
	{
 | 
						|
		v = new Viewport();
 | 
						|
	}
 | 
						|
	else if (argc == 1)
 | 
						|
	{
 | 
						|
		/* The rect arg is only used to init the viewport,
 | 
						|
		 * and does NOT replace its 'rect' property */
 | 
						|
		VALUE rectObj;
 | 
						|
		Rect *rect;
 | 
						|
 | 
						|
		rb_get_args(argc, argv, "o", &rectObj RB_ARG_END);
 | 
						|
 | 
						|
		rect = getPrivateDataCheck<Rect>(rectObj, RectType);
 | 
						|
 | 
						|
		v = new Viewport(rect);
 | 
						|
	}
 | 
						|
	else
 | 
						|
	{
 | 
						|
		int x, y, width, height;
 | 
						|
 | 
						|
		rb_get_args(argc, argv, "iiii", &x, &y, &width, &height RB_ARG_END);
 | 
						|
 | 
						|
		v = new Viewport(x, y, width, height);
 | 
						|
	}
 | 
						|
 | 
						|
	setPrivateData(self, v);
 | 
						|
 | 
						|
	/* Wrap property objects */
 | 
						|
	v->initDynAttribs();
 | 
						|
 | 
						|
	wrapProperty(self, &v->getRect(),  "rect",  RectType);
 | 
						|
	wrapProperty(self, &v->getColor(), "color", ColorType);
 | 
						|
	wrapProperty(self, &v->getTone(),  "tone",  ToneType);
 | 
						|
 | 
						|
	/* 'elements' holds all SceneElements that become children
 | 
						|
	 * of this viewport, so we can dispose them when the viewport
 | 
						|
	 * is disposed */
 | 
						|
	rb_iv_set(self, "elements", rb_ary_new());
 | 
						|
 | 
						|
	return self;
 | 
						|
}
 | 
						|
 | 
						|
DEF_PROP_OBJ_VAL(Viewport, Rect,  Rect,  "rect")
 | 
						|
DEF_PROP_OBJ_VAL(Viewport, Color, Color, "color")
 | 
						|
DEF_PROP_OBJ_VAL(Viewport, Tone,  Tone,  "tone")
 | 
						|
 | 
						|
DEF_PROP_I(Viewport, OX)
 | 
						|
DEF_PROP_I(Viewport, OY)
 | 
						|
 | 
						|
 | 
						|
void
 | 
						|
viewportBindingInit()
 | 
						|
{
 | 
						|
	VALUE klass = rb_define_class("Viewport", rb_cObject);
 | 
						|
	rb_define_alloc_func(klass, classAllocate<&ViewportType>);
 | 
						|
 | 
						|
	disposableBindingInit  <Viewport>(klass);
 | 
						|
	flashableBindingInit   <Viewport>(klass);
 | 
						|
	sceneElementBindingInit<Viewport>(klass);
 | 
						|
 | 
						|
	_rb_define_method(klass, "initialize", viewportInitialize);
 | 
						|
 | 
						|
	INIT_PROP_BIND( Viewport, Rect,  "rect"  );
 | 
						|
	INIT_PROP_BIND( Viewport, OX,    "ox"    );
 | 
						|
	INIT_PROP_BIND( Viewport, OY,    "oy"    );
 | 
						|
	INIT_PROP_BIND( Viewport, Color, "color" );
 | 
						|
	INIT_PROP_BIND( Viewport, Tone,  "tone"  );
 | 
						|
}
 | 
						|
 |