⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intercep.h

📁 game duke3d source
💻 H
字号:
//-------------------------------------------------------------------------/*Copyright (C) 1996, 2003 - 3D Realms EntertainmentThis file is NOT part of Duke Nukem 3D version 1.5 - Atomic EditionHowever, it is either an older version of a file that is, or issome test code written during the development of Duke Nukem 3D.This file is provided purely for educational interest.Duke Nukem 3D is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY 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 Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms*///-------------------------------------------------------------------------#import <appkit/appkit.h>@interface NXShape:Object{    NXZone             *zone;    void               *_impl;}// Init, copy, and free- init;- initFromRect:(NXRect *)rect;- free;- copyFromZone:(NXZone *)zone;// Querying- (BOOL)isEqual:shape;- (BOOL)isEmpty;- rectEnumerator;// Changing- offsetShape:(NXPoint *)distance;- differenceWithShape:shape;- unionWithShape:shape;- intersectWithShape:shape;@end@protocol NXShapeEnumerator- (NXRect *)nextRect;@end@interface NXInterceptorClient:Object{    void               *context;    id                  interceptedRects;    id                  listLock;    id                  portLock;    struct cthread     *handlingThread;    char                _reserved0;    unsigned int        _padding[8];    void               *_private;}/* * Class methods */+ initialize;/* * Create and destroy */- init;- free;/* * Query */- (int)interceptorPort;/* * Handling */- setHandlingThread:(struct cthread *)thread;- (struct cthread *)handlingThread;- startHandlingThread;typedef struct {    msg_header_t	header;    msg_type_t		type;    int			a,b,c,d,e[16];} dumb_message_t;typedef struct {    msg_header_t	header;    msg_type_t		type;    int			a;} dumb_reply_t;- (BOOL)handleInterceptorMessage:(dumb_message_t *)message	withReply:(dumb_reply_t *)reply;/* * Private */ - (void *)_context;- _removeInterceptedRect:fp16;- _addInterceptedRect:fp16 returnedScreenRect:(NXRect *)rect	returnedFlags:(int *)fp24;@end@interface NXInterceptedRect:Object{    NXRect              rect;    NXRect              screenRect;    int                 windowNumber;    id                  screen;    unsigned int        uniqueID;    id                  target;    unsigned int        flags;    id                  rectLock;    BOOL                isTotallyVisible;    BOOL                isTotallyObscured;    BOOL                moveInProgress;    BOOL                isLocked;    id                  tmpBitmap;    NXInterceptorClient *interceptorClient;    unsigned int        _ir_padding[8];    void               *_ir_private;}/* * Create and destroy */- initForRect:(NXRect *)rect inWindow:(int)window	onFramebuffer:frameBuffer forClient:client;- free;/* * Query */ - framebuffer;- (BOOL)isTotallyObscured;- (BOOL)isTotallyVisible;- getRect:(NXRect *)rect;- (int)windowNumber;- (int)uniqueID;- currentClipList:(NXRect *)rects count:(int)count;- currentScreenRect:(NXRect *)rect;/* * Action */- compositeBits:bits withOp:(int)compositeOp;- target;- setTarget:target;/* * Locking */ - lockRect;- unlockRect;- (BOOL)isLocked;/* * Private */ - _handleMsg:(dumb_message_t *)fp16 withReply:(dumb_reply_t *)fp20;- (unsigned int)_flags;@end#import <sys/types.h>#import <mach/message.h>@interface NXSimpleBitmap:Object{    BOOL                isPlanar;    BOOL                hasAlpha;    int                 bitsPerSample;    int                 samplesPerPixel;    int                 bitsPerPixel;    int                 bytesPerRow;    int                 bytesPerPlane;    int                 numPlanes;    int                 pixelsWide;    int                 pixelsHigh;    int                 colorSpace;    void               *data[5];    unsigned int        _bm_padding[8];    void               *_bm_private;}/* * Create and destroy */- initDataPlanes:(unsigned char **)planes pixelsWide:(int)width	pixelsHigh:(int)height bitsPerSample:(int)bps samplesPerPixel:(int)spp	hasAlpha:(BOOL)alpha isPlanar:(BOOL)isPlanar	colorSpace:(NXColorSpace)colorSpace bytesPerRow:(int)rBytes	bitsPerPixel:(int)pBits;- initData:(unsigned char *)data pixelsWide:(int)width	pixelsHigh:(int)height bitsPerSample:(int)bps samplesPerPixel:(int)spp	hasAlpha:(BOOL)alpha isPlanar:(BOOL)isPlanar	colorSpace:(NXColorSpace)colorSpace bytesPerRow:(int)rBytes	bitsPerPixel:(int)pBits;- free;/* * Querying */- (int)pixelsHigh;- (int)pixelsWide;- (int)colorSpace;- (int)numPlanes;- (int)bytesPerPlane;- (int)bytesPerRow;- (int)bitsPerSample;- (int)bitsPerPixel;- (int)samplesPerPixel;- (BOOL)hasAlpha;- (BOOL)isPlanar;- getDataPlanes:(unsigned char **)data;- (unsigned char *)data;@end@interface NXFramebuffer:NXSimpleBitmap{    NXInterceptorClient *interceptorClient;    int                 screenNumber;    NXRect		bounds;    char                pixelEncoding[64];    char                driver[80];    int                 deviceSlot;    int                 deviceUnit;    void               *conversionTable;    void               *inverseConversionTable;    BOOL                isMapped;    unsigned int        _fb_padding[8];    void               *_fb_private;}/* * Create and destroy */ + MegaPixelInstance;- initFromScreen:(int)screen andMapIfPossible:(BOOL)doMap;- free;/* * Querying */ - (int)deviceSlot;- (int)deviceUnit;- (char *)driver;- (char *)pixelEncoding;- (void *)addressForPoint:(NXPoint *)point;- (void *)inverseConversionTable;- (void *)conversionTable;- (int)screenNumber;- screenBounds:(NXRect *)bounds;- (BOOL)isMappable;/* * Private */ - _remapForThread;- _interceptorClient;@end@interface NXDirectBitmap:NXSimpleBitmap{    BOOL                isBuffered;    BOOL                isDirectMapped;    BOOL                isUnobscured;    BOOL                isLocked;    BOOL                depthMismatch;    BOOL                drawToBuffer;    BOOL                updateNeeded;    NXFramebuffer      *framebuffer;    int                 currentScreen;    int                 newScreen;    NXInterceptedRect  *interceptRect;    NXInterceptorClient *interceptClient;    void               *copyFunc;    id                  window;    int                 gWinNum;    NXRect              rect;    int                 _flushOnExposure;    id                  _delegate;    id                  _viewClip;    unsigned int        _dbm_padding[5];    void               *_dbm_private;}/* * Class methods */+ minDepthForGray:(int)gray andColor:(int)color;/* * Create and destroy */- initForRect:(NXRect *)rect inWindow:window;- init;- free;/* * Query */ - (BOOL)isDirectMapped;- (BOOL)isBuffered;- (int)bytesPerRow;- (int)bytesPerPlane;- (char *)pixelEncoding;- getPixelEncoding:(char **)pixelEncoding;- (char *)data;- getDataPlanes:(char **)dataPlanes;- (void *)inverseConversionTable;- (void *)conversionTable;/* * Change state */ - setDirectMapped:(BOOL)isDirectMapped;- setBuffered:(BOOL)isBuffered;/* * Action */ - updateState;- updateForRect:(NXRect *)rect inWindow:window;- flushIn:(NXRect *)rect;- flush;/* * Locking */  - lockBitmap;- unlockBitmap;- (BOOL)tryLockBitmap;/* * Area methods */- areaWindowFreed:area;- areaChangedScreen:area from:(int)fromWindow to:(int)toWindow;- areaIsInvalid:area;- areaWasOrderedOut:area;- areaWasOrderedIn:area;- areaDidReveal:area inRect:(NXRect *)rect;- areaWillObscure:area inRect:(NXRect *)rect;- areaDidMove:area by:(NXPoint *)point;- areaWillMove:area by:(NXPoint *)point;/* * Private */ - _viewClip:clip;- _setViewClip:clip;- (BOOL)_isUnobscured;- (NXPoint)_screenBoundsOrigin;- _setFlushOnExposure:(BOOL)flush;- _framebuffer;- _setDelegate:delegate;- _updateForRect:(NXRect *)rect inWinNum:(int)winNum onScreen:(int)screen;- _updateBackingStoreForRect:(NXRect *)rect;- (BOOL)_canUseDirectMapping;- _updateBuffer;- _initForRect:(NXRect *)rect inWinNum:(int)winNum onScreen:(int)screen;- _mapFramebufferForScreen:(int)screen;- _flushInShape:shape;- (char *)_dataBuffer;@end

⌨️ 快捷键说明

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