rayrend.cpp

来自「Demo Source for a doom like engine using」· C++ 代码 · 共 68 行

CPP
68
字号
#include "ray.h"
#include "rayrend.h"
#include "raycl.h"
#include "rayvb.h"
#include "globals.h"
#include "voxinter.h"
#include "asm.h"
#include "scrconf.h"

#define MIN_RENDER_MODE 0
#define MAX_RENDER_MODE 1

#define APPROX_INFO_SIZE 10

void Render_Init() {

bounds=(vb_node *)NewPtr(Get_Phys_Screen_Width() * sizeof(vb_node));

wall_runs=(wall_run_info *)NewPtr(MAX_WALL_RUNS * sizeof(wall_run_info));
floor_runs=(floor_run_info *)NewPtr(MAX_FLOOR_RUNS * sizeof(floor_run_info));

Draw_Sub_Sector_Setup();

Init_Slope_Table();

}

void Render_Close() {

   DelPtr(bounds);
   DelPtr(wall_runs);
   DelPtr(floor_runs);
   Draw_Sub_Sector_Close();
   Clear_Slope_Table();

}

render_type render_mode;

void Render_Screen(long x, long y, long z, long view_angle) {
   switch (render_mode) {
   case MODE_3D:
      Ray_Caster(x, y, z, view_angle);
      break;
   case MODE_2D:
      Render_2d(x, y, view_angle);
      break;
   default: 

     break;
   } /* endswitch */
}

void SwitchRenderMode() {
   render_mode++;
   if (render_mode > MAX_RENDER_MODE) {
      render_mode=MIN_RENDER_MODE;
   } /* endif */
   clearBuff();
}

void SetRenderMode(render_type mode) {
   render_mode=mode;
   clearBuff();
};

render_type GetRenderMode() { return render_mode; };

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?