zoukankan      html  css  js  c++  java
  • irrlicht1.7.0(1):irrTypes.h

    //因为作者的水平不够所以学习先从irrlicht引擎最基本的地方开始

    首先我们来看一下irrTypes.h这个文件,这个文件里包含了irrlicht引擎中一些最基本的类型的定义

    首先是

    #ifndef __IRR_TYPES_H_INCLUDED__
    #define __IRR_TYPES_H_INCLUDED__
    
    #include "IrrCompileConfig.h"
    
    namespace irr

    这里主要是说明一下IrrCompileConfig.h这个文件,它是包含了irrlicht里一些基本的平台、载入文件类型、底层渲染用SDK相关的宏,这里不与说明大家都能看懂

    #ifdef _MSC_VER
    typedef unsigned __int8        u8;
    #else
    typedef unsigned char        u8;
    #endif

    #ifdef _MSC_VER实现跨平台,(这里其实不必要吧,欢迎来喷)

    #include <wchar.h>
    #ifdef _IRR_WINDOWS_API_
    //! Defines for s{w,n}printf because these methods do not match the ISO C
    //! standard on Windows platforms, but it does on all others.
    //! These should be int snprintf(char *str, size_t size, const char *format, ...);
    //! and int swprintf(wchar_t *wcs, size_t maxlen, const wchar_t *format, ...);
    #if defined(_MSC_VER) && _MSC_VER > 1310 && !defined (_WIN32_WCE)
    #define swprintf swprintf_s
    #define snprintf sprintf_s
    #else
    #define swprintf _snwprintf
    #define snprintf _snprintf
    #endif

    也是实现跨平台,但这里说s{w,n}printf的函数在windowAPI和ISO C里是不一样的,因为要实现跨平台时必须注意

    #if defined(_DEBUG) && defined(IRRLICHT_EXPORTS) && defined(_MSC_VER) && \
        (_MSC_VER > 1299) && !defined(_IRR_DONT_DO_MEMORY_DEBUGGING_HERE) && !defined(_WIN32_WCE)
    
        #define CRTDBG_MAP_ALLOC
        #define _CRTDBG_MAP_ALLOC
        #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
        #include <stdlib.h>
        #include <crtdbg.h>
        #define new DEBUG_CLIENTBLOCK
    #endif

    内存泄露检测定义宏,通过使用<crtdbg.h>里的_CrtDumpMemoryLeaks()可以简单检测内存泄露

    #define MAKE_IRR_ID(c0, c1, c2, c3) \
            ((irr::u32)(irr::u8)(c0) | ((irr::u32)(irr::u8)(c1) << 8) | \
            ((irr::u32)(irr::u8)(c2) << 16) | ((irr::u32)(irr::u8)(c3) << 24 ))

    把四个字符转换成无符号32位整型

  • 相关阅读:
    洛谷 P1981 表达式求值
    1696:逆波兰表达式
    C# winform选择文件、选择文件夹、打开文件
    建立二叉树的二叉链表存储结构(严6.70)
    二叉树的深度
    Sequence
    c++优先队列(priority_queue)用法详解
    二叉树的操作
    [清华集训2015]灯泡(浙江大学ZOJ 3203 Light Bulb)
    Go 和 Colly笔记
  • 原文地址:https://www.cnblogs.com/kirito/p/3080341.html
Copyright © 2011-2022 走看看