Nuclide
Software Development Kit for id Technology (BETA)
MediaSurface.h
1/*
2 * Copyright (c) 2022-2025 Vera Visions LLC.
3 *
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
13 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
14 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*/
16
35class
37{
38public:
39 void ncMediaSurface(void);
40
41#ifdef SERVER
42 virtual void OnMapFinishedLoading(void);
43 virtual void SpawnKey(string,string);
44 virtual void Spawned(void);
45 virtual void EvaluateEntity(void);
46 virtual float SendEntity(entity,float);
47 virtual void Input(entity, string, string);
48#endif
49
50#ifdef CLIENT
51 virtual float predraw(void);
52 virtual void postdraw(void);
53 virtual void postframe(void);
54 virtual void RenderScene(void);
55 virtual void OnRemoveEntity(void);
56 virtual bool FocusCheck(vector,vector);
57 virtual void ReloadVideoResources(void);
58 virtual void ReceiveEntity(float,float);
59 virtual bool Input(float,float,float,float);
60 virtual void _ReceiveComplete(float, float);
61 virtual void ReceiveEvent(float);
62
63 virtual void OnGainedFocus(void);
64 virtual void OnLostFocus(void);
65#endif
66
67private:
68 NETWORKED_FLOAT(m_flScale)
69 NETWORKED_STRING(m_strUIClass)
70 NETWORKED_VECTOR(m_vecUIRes)
71 NETWORKED_FLOAT(m_flUseDistance)
72 NETWORKED_VECTOR(m_vecScreenLight)
73 NETWORKED_BOOL(m_uiSurfaceEnabled)
74 NETWORKED_FLOAT(m_mediaSourceEntityNum)
75 NETWORKED_ENTITY(m_mediaSource)
76 NETWORKED_STRING(m_gui64)
77 NETWORKED_STRING(m_acceptsData)
78
79#ifdef CLIENT
80 entity m_uiRootWindow;
81 entity m_uiInteractive;
82 float m_flSurfaceMat;
83 string m_strSurfaceMat;
84 bool m_bInFocus;
85 bool m_bWasInFocus;
86 vector m_vecCursorPos;
87 bool m_bCached;
88 vector m_vecWorldSize;
89 float m_refreshRate;
90 float m_lastRefresh;
91 float m_lastMouseInputTime;
92 vector m_lastCursorPos;
93#endif
94
95#ifdef SERVER
96 string m_outputOnActivate;
97 string m_outputOnActivateFailed;
98 string m_outputOnOutput1;
99 string m_outputOnOutput2;
100 string m_outputOnOutput3;
101 string m_outputOnOutput4;
102 string m_outputOnOutput5;
103 string m_outputOnOutput6;
104 string m_outputOnOutput7;
105 string m_outputOnOutput8;
106 string m_outputOnOutput9;
107 string m_outputOnOutput10;
108 string m_outputOnOutput11;
109 string m_outputOnOutput12;
110 string m_outputOnOutput13;
111 string m_outputOnOutput14;
112 string m_outputOnOutput15;
113 string m_outputOnOutput16;
114 string m_lastDataCommand;
115#endif
116};
117
118typedef enumflags
119{
120 UISURFACEFL_ORIGIN,
121 UISURFACEFL_ANGLES,
122 UISURFACEFL_INTERFACE,
123 UISURFACEFL_SOURCE,
124 UISURFACEFL_RESOLUTION,
125 UISURFACEFL_SCALE,
126 UISURFACEFL_DISTANCE,
127 UISURFACEFL_LIGHT,
128 UISURFACEFL_ENABLED,
129};
130
131
132#define MEDIASURFACE_EVENT_COMMAND 1
133#define MEDIASURFACE_EVENT_OPENURL 2
ncEntity is the lowest of the user-accessible entity class.
Definition: Entity.h:75
Definition: MediaSurface.h:37
typedef enumflags
Defines the valid alignment flags for text fields.
Definition: font.h:37