1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-05-06 10:36:12 +03:00
occt/src/Draw/Draw_Appli.hxx
abv 68df847802 0022651: Impossible to build OCC as static library due to using Standard_EXPORT instead of Standard_API
All library-specific macros for defining export / import properties of symbols on Windows (like Standard_API, __Draw_API, _math_API etc.) are eliminated.
Common macro Standard_EXPORT is used in all places where it is necessary.

New macro OCCT_STATIC_BUILD is defined for disabling Standard_EXPORT, to be used instead of HAVE_NO_DLL, though the latter is still supported as well (for compatibility).

To allow building OCCT in static mode on Windows after these changes:
- Files OSD_WNT_1.hxx and OSD_WNT_BREAK.hxx are removed; useful declarations are moved to OSD_WNT.hxx
- In the class IVtkVTK_ShapeData, static fields ARRNAME_MESH_TYPES and ARRNAME_SUBSHAPE_IDS are converted to static inline functions
- Global array ChoixRef defined in IntImp_ComputeTangence.cxx is converted to static function returning element of the array by index
- Unused class Quantity_Convert is removed (it had static field accessed by inline method)
- Struct Approx_Data defined in the same way in BRepApprox_Approx.hxx and GeomInt_WLApprox.hxx is made private member of these classes to avoid name clash
- Some C++ files producing no object code are removed
- In NCollection_EBTree.hxx and StdLPersistent_Collectio.hxx, definition of template virtual method is moved to class definition to avoid MSVC linker warnings on unused symbols
2018-03-19 13:13:39 +03:00

74 lines
2.2 KiB
C++

// Created on: 1992-04-07
// Created by: Remi LEQUETTE
// Copyright (c) 1992-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef Draw_Appli_HeaderFile
#define Draw_Appli_HeaderFile
#include <Draw_Viewer.hxx>
#include <Draw.hxx>
typedef void (*FDraw_InitAppli)(Draw_Interpretor&);
#ifdef _WIN32
#include <windows.h>
Standard_EXPORT void Draw_Appli(HINSTANCE,HINSTANCE,int,
int argc, wchar_t** argv,
const FDraw_InitAppli Draw_InitAppli);
#else
extern void Draw_Appli(int argc, char** argv,
const FDraw_InitAppli Draw_InitAppli);
#endif
#ifndef _WIN32
extern Draw_Viewer dout;
extern Standard_Boolean Draw_Batch;
#endif
class Draw_SaveAndRestore {
public :
Standard_EXPORT Draw_SaveAndRestore
(const char* name,
Standard_Boolean (*test)(const Handle(Draw_Drawable3D)&),
void (*save)(const Handle(Draw_Drawable3D)&, ostream&),
Handle(Draw_Drawable3D) (*restore) (istream&),
Standard_Boolean display = Standard_True);
const char* Name() const {return myName;}
Standard_Boolean Test(const Handle(Draw_Drawable3D)&d);
void Save(const Handle(Draw_Drawable3D)& d, ostream& os) const;
Handle(Draw_Drawable3D) Restore(istream&) const;
Standard_Boolean Disp() const {return myDisplay;}
Draw_SaveAndRestore* Next() {return myNext;}
private :
const char* myName;
Standard_Boolean (*myTest)(const Handle(Draw_Drawable3D)&);
void (*mySave)(const Handle(Draw_Drawable3D)&, ostream&);
Handle(Draw_Drawable3D) (*myRestore) (istream&);
Standard_Boolean myDisplay;
Draw_SaveAndRestore* myNext;
};
#endif