obscene
Member
To optimize a graphics effect, I only apply it to instances in the view. In GMS1.4, I did this...
Lots of math, but it has never been slow.
After importing it into GMS2, it became this...
In one room with a particularly large amount of instances, it became evident this is extremely slow.
__view_get() is a compatibility script generated by GMS.
Can anyone elaborate on what is going on exactly and how to make a clean conversion? I've read/watched a little bit on cameras but I'm confused as to what GMS2 may have already created in my project and how to work with that/remove that. (Do I already have cameras? One? One for each room? ID? Do I need to make a global one so all the billion things in my game that use view_xview / view_yview can access them?)
Code:
with (par_prop)
{
if (image_alpha==1 && sprite_index && bbox_right>view_xview && bbox_left<view_xview+1920
&& bbox_bottom > view_yview && bbox_top < view_yview+804)
{
// do stuff
After importing it into GMS2, it became this...
Code:
with (par_prop)
{
if (image_alpha==1 && sprite_index && bbox_right>__view_get( e__VW.XView, 0 ) && bbox_left<__view_get( e__VW.XView, 0 )+1920
&& bbox_bottom > __view_get( e__VW.YView, 0 ) && bbox_top < __view_get( e__VW.YView, 0 )+804)
{
// do stuff
__view_get() is a compatibility script generated by GMS.
Code:
var __prop = argument0;
var __index = argument1;
var __res = -1;
switch(__prop)
{
case e__VW.XView: var __cam = view_get_camera(__index); __res = camera_get_view_x(__cam); break;
case e__VW.YView: var __cam = view_get_camera(__index); __res = camera_get_view_y(__cam); break;
case e__VW.WView: var __cam = view_get_camera(__index); __res = camera_get_view_width(__cam); break;
case e__VW.HView: var __cam = view_get_camera(__index); __res = camera_get_view_height(__cam); break;
case e__VW.Angle: var __cam = view_get_camera(__index); __res = camera_get_view_angle(__cam); break;
case e__VW.HBorder: var __cam = view_get_camera(__index); __res = camera_get_view_border_x(__cam); break;
case e__VW.VBorder: var __cam = view_get_camera(__index); __res = camera_get_view_border_y(__cam); break;
case e__VW.HSpeed: var __cam = view_get_camera(__index); __res = camera_get_view_speed_x(__cam); break;
case e__VW.VSpeed: var __cam = view_get_camera(__index); __res = camera_get_view_speed_y(__cam); break;
case e__VW.Object: var __cam = view_get_camera(__index); __res = camera_get_view_target(__cam); break;
case e__VW.Visible: __res = view_get_visible(__index); break;
case e__VW.XPort: __res = view_get_xport(__index); break;
case e__VW.YPort: __res = view_get_yport(__index); break;
case e__VW.WPort: __res = view_get_wport(__index); break;
case e__VW.HPort: __res = view_get_hport(__index); break;
case e__VW.Camera: __res = view_get_camera(__index); break;
case e__VW.SurfaceID: __res = view_get_surface_id(__index); break;
default: break;
};
return __res;
Last edited: