diff --git a/StgSharp.Common/StgSharp.Common.deps.json b/StgSharp.Common/StgSharp.Common.deps.json deleted file mode 100644 index 2f525abd..00000000 --- a/StgSharp.Common/StgSharp.Common.deps.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v8.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v8.0": { - "StgSharp.Common/1.0.0": { - "runtime": { - "StgSharp.Common.dll": {} - } - } - } - }, - "libraries": { - "StgSharp.Common/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/StgSharp.Common/StgSharp.Common.dll b/StgSharp.Common/StgSharp.Common.dll deleted file mode 100644 index 9eaa85f7..00000000 Binary files a/StgSharp.Common/StgSharp.Common.dll and /dev/null differ diff --git a/StgSharp.Common/StgSharp.Common.pdb b/StgSharp.Common/StgSharp.Common.pdb deleted file mode 100644 index 48f283fe..00000000 Binary files a/StgSharp.Common/StgSharp.Common.pdb and /dev/null differ diff --git a/StgSharp.Common/StgSharp.Common.xml b/StgSharp.Common/StgSharp.Common.xml deleted file mode 100644 index 82744fdb..00000000 --- a/StgSharp.Common/StgSharp.Common.xml +++ /dev/null @@ -1,1249 +0,0 @@ - - - - StgSharp.Common - - - - - Lock-free, fixed-capacity stack implemented on top of an array using atomic index - operations. - No linked list; only array slots - Uses CAS on a shared top index to - reserve/release slots - Per-slot state flag to safely publish/consume values under races - - - - - Best-effort snapshot for enumeration; not strongly consistent under concurrent - mutations. - - - - - Determines whether the contains the - specified key. - - - The value to locate in the . - - - true if the contains an element with - the specified key; otherwise, false. - - - - - Determines whether the contains the - specified key. - - - The value to locate in the . - - - true if the contains an element with - the specified key; otherwise, false. - - - - - Cache hash result for obj with counts. - - - - - - - - - - - Part of a collection. This contains a direct reference to _origin collection, so all - change to _origin collection will be reflected in this object. - - - - - - - - Initializes a new instance of the RandomAccessStack class that is empty and has the - default initial capacity. - - - - - Initializes a new instance of the RandomAccessStack class that is empty and has the - specified initial capacity. - - - - - Gets or sets the element at the specified index in the stack (0 = bottom, Count-1 = - top). - - - - - Gets the number of elements contained in the stack. - - - - - Removes all objects from the stack. - - - - - Returns an enumerator that iterates through the stack from top to bottom. Throws if - the stack is modified during iteration. - - - - - Returns the object at the top of the stack without removing it. - - - - - Removes and returns the object at the top of the stack. - - - - - Adds an item to the top of the stack. - - - - - CustomizeInit an instance of OpenGL program, This method should be called before any - other World api. - - - - - Version of current World platform. Main version represent in hundred's digit, and sub - version represent in ten's digit. - - - - - Write a log message to log file, and mark the _level of this message. - - - A string contains information of how current evironment runs. - - - The severity of current message. - - - - - A class attempt to reduce cost of boxing, though still a bit slower than direct access to - _origin value type instance. - - - Type of instance to be boxed. - - - - - A class contains a sets of methods to serialize several types - - - - - An independent storage area, used as the only folder type in root folder. Contains several - files reference as virtual disc. Data is actually stored in s in certain RAID mode. - - - - - 当几何体调用了过多的CalcVec方法时,产生UnusedVertexException异常 - - - - - Plain geometry only contains straight sides. - - - - - Calculate movement to center - - - CurrentPipeline time tick - - - - - - - - A square - - - - - Get all uniform related to this . - - - Shader program requires this camera. - - - ContextName of all related uniforms. If you fallow form from - - - - - - - - A two dimension vector defined by two elements. Vec2 in World are default used as colum - vector. - - - - - Orthogonalize two s, let their length be 1 and perpendicular to - each other. - - - - - - - - - - - Length of the matrix in columns. - - - - - Length of the matrix in rows. - - - - - Reurns the value of ArcSin(x) - - - The sine value of the angle - - - - - - - - - - - Get the value of E ^ x; - - - - - - - - - - - - - - - - - Returns the value of ln(x). - - - - - calculate the value of x^y - - - - - - - - - Returns the value of x^y - - - - - returns a random float number between 0 and 1. - - - - - - - - - - - - - - - - Generates a random seed in int value. - - - - - - - - Interface of all kinds OpenGL BufferHandle objects - - - - - Get the only handle to one of the Object instance - - - - - - - - - - - Bind a BufferHandle instance to OpenGL - - - Index of handle of the object in this instance to be bind - - - - - - - - Function handler to load an opengl function by searching its _label. - - - the _label of the Opengl function - - - An Intptr value representing the pointer to the function - - - - - Hash code of time pixels updated last time. - - - - - A collection of a sets of OpenGL textures. The collection can automatically select one of - the texture with minimum costs to upgrade pixels to BufferHandle. Usually is used for loading, but not for - target of . - - - - - A collection of handle to Element BufferHandle Object in OpenglFunc. Each value indexed from instance of this class this is the only handle to - one Element BufferHandle Object. - - - - - Bind the frame BufferHandle object with _label frame BufferHandle to the frame - BufferHandle target specified by target. will - be set as default target. - - - Index of object to be binded in handle set - - - - - Bind the frame BufferHandle object with _label frame BufferHandle to the frame - BufferHandle target specified by target. Target of this frame BufferHandle should be - set manually. - - - The frame BufferHandle target of the binding operation. - - - Index of object to be binded in handle set - - - - - Load an to certain texture. - - - - - - - - - - - - - - - - Set _data to current vertex BufferHandle object - - - Type of bufferData - - - Index to find certain VBO in this instance - - - Data to write in - - - How OpenGL use these _data, defined by - - - - - Set _data to current vertex BufferHandle object - - - Type of bufferData - - - Index to find certain VBO in this instance - - - Data to write in - - - How OpenGL use these _data, defined by - - - - - Set _data to current vertex BufferHandle object - - - Type of bufferData - - - Index to find certain VBO in this instance - - - A of _data to write in - - - How OpenGL use these _data, defined by - - - - - Set data to current vertex BufferHandle object - - - Type of bufferData - - - Index to find certain VBO in this instance - - - A of data to write in - - - How OpenGL use these data, defined by - - - - - Set _data to current vertex BufferHandle object - - - Type of bufferData - - - Index to find certain VBO in this instance - - - A array of _data to write in - - - How OpenGL use these _data, defined by - - - - - Get the function pointer of given OpenGL api _label - - - ContextName of the OpenGL api - - - The funtion pointer of the api in stream of - - - - - Load all supported OpenGL APIs and bind them to given . - - - The handle to current OpenGL viewPortDisplay - - - - - - - Create a set of . - - - Amount of EBO to be created. - - - - - - - - Create a sets of - - - Amount of textures to be created. - - - - - - - - Create a set of . - - - Amount of VAO to be created. - - - - - - - - Create a set of . - - - Amount of Object to be created. - - - - - - - - Initialize an opengl context and load all opengl functions. - - - - - Initialize an OpenGl viewPortDisplay if current form has not been binded to any - viewPortDisplay. and set the viewPortDisplay binded to current form as current OpenGL - viewPortDisplay. - - - Something goes wrong and World fails in creating a new OpenGL viewPortDisplay. - - - - - - - - - - - Create an instance of program - - - New instance of instance. - - - - - OpenGL numeric type. An IEEE-754 floating-point value, clamped to the range [0,1]. - - - - - OpenGL numeric type. An IEEE-754 double precision floating-point value, clamped to the - range [0,1]. - - - - - Attach one shader code to a shader program. - - - Shader program to attach - - - Index of shader code in current shader code set. - - - - - CustomizeInit a program with no shader attached. - - - - - Get a uniform form current shader, the value type of the uniform should be provided. - - - ContextName of the Uniform in shader code - - - - - - - - Get a uniform form current shader, the value type of the uniform should be provided. - - - ContextName of the Uniform in shader code - - - - - - - - Get a uniform form current shader, the value type of the uniform should be provided. - - - ContextName of the Uniform in shader code - - - - - - - - Get a uniform form current shader, the value type of the uniform should be provided. - - - ContextName of the Uniform in shader code - - - - - - - - Link the shader to current viewPortDisplay. - - - - - Let the current viewPortDisplay use this shader. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Set the Size limit of current form - - - Minimum width of current form - - - Minimum height of current form - - - Maximum width of current form - - - Maximum height of current form - - - - - Get (TView is ) uniform from a shader. - This uniform will be used as projection matrix of this camera. Additionally, for - multi- shader rendering, each shader requires a uniform, so do not ignore return - value of this method. - - - Shader using this camera - - - ContextName of projection camera named in shader - - - (TView is ) representing projection - matrix in shader program. - - - - - Marking the start of current render operations, and set this renser context as - current. - - - - - Marking the end of current render operations, and release the binding of this renser - context to current, making it available for another thread as current. - - - - - Provide a lock for managing concurrent access to a buffer that can be expanded and use a - common two-pase-copy expanding mechanism. - - - - - An individual thread doing nothing, and its always returns false. - - - - - A single-consumer bell/signal primitive. - - - Producers can call multiple times to publish signals. The bell - keeps a pending count of not-yet-consumed signals. The consumer uses or to consume - signals. When a producer increments the pending count from 0 to 1, the - internal event is set to wake the consumer. Consuming via - or clears the entire pending count - (aggregate consumption). If new signals arrive while resetting, the event is set again to - avoid missed signals. Ownership: only the specified owner can call - the consumer APIs. - - - - - Initializes a new instance of . - - - The unique consumer identity; subsequent calls to Wait/TryWait must pass the same - reference. - - - Spin count passed to the underlying . - - - Thrown if is null. - - - - - Disposes the bell, sets the event to wake any waiting consumer, and releases - resources. - - - - - Publishes a signal by incrementing the not-yet-consumed count and returns the current - pending count. - - - If the pending count transitions from 0 to 1, the event is set to wake the consumer. - - - The current pending count including this call. - - - - - Attempts to consume any pending signals without blocking. - - - The consumer object; must be the same reference provided at construction. - - - true if a signal was available (pending or event set); otherwise false - . - - - Thrown if is not the owner. - - - - - Blocks until a signal is available, then consumes all pending signals. - - - The consumer object; must be the same reference provided at construction. - - - A token to cancel the wait. - - - Thrown if is not the owner. - - - - - A counting semaphore with adjustable maximum capacity at runtime. Implemented using one or - more ManualResetEventSlim (MRES) gates and atomic counters to avoid kernel semaphore - overhead while supporting high-frequency Release/Wait patterns. Notes: - This is a - counting primitive (not a barrier). Permits accumulate up to . - - Reducing does not revoke already issued permits; it only clamps - future releases. - Striped MRES can reduce contention in highly parallel waits. - - - - - - Current number of available permits. - - - - - Logical maximum number of permits. Can be changed at runtime. - - - - - Release a single permit if under . Returns the previous - count. - - - - - Release multiple permits (capped by ). Returns the previous - count. - - - - - Try to take a permit without blocking. Returns true if acquired. - - - - - Block until a permit is available, then consume one. - - - - - Block until a permit is available or canceled, then consume one. - - - - - Abstraction for a wide SIMD register or equivalent packed numeric storage. Provides raw - reference access, broadcast initialization and element level access. Typical - implementations map to 128/256/512-bit hardware registers or software emulated blocks. - - - - - Gets a reference to the first element of the register reinterpreted as type . - - - Unmanaged numeric element type implementing . - - - Writable reference to element 0 (lowest lane / lowest bits). - - - Intended for treating the register as a contiguous block of elements. The returned reference - must remain valid for the lifetime of the register and be identical to with index 0. Caller must choose a type layout compatible with the - actual register representation. - - - - - Fills all elements (lanes) of the register with the provided scalar . - - - Unmanaged numeric element type implementing . - - - Scalar value to replicate to every element. - - - Should map to a single broadcast/shuffle instruction where possible. After completion all - lanes read back the same value. - - - - - Gets a writable reference to the element at the specified . - - - Unmanaged numeric element type implementing . - - - Zero-based lane index (range defined by implementation). - - - Writable reference to the lane. - - - Enables scalar lane edits without unpacking the entire register. Implementations may omit - bounds checks for performance. Caller is responsible for passing a valid index. - - - - - Buffer for SSE targeted matrix panel, size of a panel is 4x4 elements, and no smaller than - 16 bytes. - - - Type of matrix element. - - - - - Buffer for AVX targeted matrix panel, size of a panel is 4x4 elements, and no smaller than - 16 bytes. - - - Type of matrix element. - - - - - Buffer for AVX512 targeted matrix panel, size of a panel is 4x4 elements, and no smaller - than 16 bytes. - - - Type of matrix element. - - - - - Try to allocate a new 16MB block when all buckets are empty - - - Output handle to the allocated Entry - - - True if allocation succeeded - - - - - Helper method for allocation - converts BucketNode to Entry - - - - - BucketNode structure - specialized node for bucket linked lists Stored in main - allocation area (user-overwritable region) - - - - - Free allocated memory block and perform adjacent block merging - - - Handle to the allocated memory block - - - - - Determine segment index based on size and originLevel - - - - - Check if two Entries are adjacent in memory - - - - - Used in Free operations, efficiently remove from buckets and merge adjacent blocks. - Current Entry will serve as the final merged block. The Merge will be in lazy - strategy, any fail in acquiring spin lock will end a merging process. - - - - - Remove node from position linked list - - - - - Entry structure - streamlined version (only position and state information) Stored in - external SLAB - - - - - Creates a new SLAB allocator instance with the specified configuration. - - - Initial number of objects that can be allocated. - - - Memory layout strategy for the SLAB allocator. - - - Whether to enable concurrent access support. - - - A new SLAB allocator instance. - - - Thrown when an invalid layout is specified. - - - Thrown when requesting unsupported configurations. - - - Important Threading Considerations: While SLAB - /// allocators themselves may be designed for single-threaded use, allocated objects - are /// frequently shared across multiple threads in real-world applications. Due to - the /// special implementation of expandable concurrent sequential SLAB allocators, - they rely /// on internal expansion locks to ensure that memory buffer expansions - (which involve /// copying the entire buffer to a new location) do not occur while - other threads are /// reading from allocated regions. - Sequential Layout Limitations: ///
Sequential layout SLAB - allocators cannot provide a single-threaded /// version because:They use contiguous memory /// layout that requires - buffer expansion when capacity is exceeded - ///Buffer expansion involves copying all /// - existing data to a new memory location /// - Without proper synchronization, concurrent access to allocated objects during /// - expansion would cause memory corruptionThe - /// expansion lock mechanism is essential even if allocation itself is single- /// - threaded
Chunked Layout: - ///
Chunked layout allocators can optionally provide single-threaded - /// versions since they don't require buffer expansion and copying. Each chunk is - /// allocated independently, avoiding the memory relocation issues present in - sequential /// layouts.
-
-
- - - CustomizeInit this form and render it on screen, and respond with operation - - - - - Height of this form, represent in - - - - - Width of this form, represent in - - - - - Width of this form, represent in - - - - - Set the Size limit of current form - - - Minimum Size of current form. In form of a of (width,height) - - - Maximum Size of current form. In form of a of (width,height) - - - - - Set the Size limit of current form - - - Minimum width of current form - - - Minimum height of current form - - - Maximum width of current form - - - Maximum height of current form - - - - - ViewBase is the base type for all view types, providing context binding and control - element binding. A complete view should contain one complete , , and , which provide - layout descriptions of control elements, user responses, and rendering implementations in - the view. Data between instances of , , and is shared through . - - - - - Get the status of a certain key on the keyboard. - - - - - - representing if a key is pressed or released. - - - - - ViewDesigner provides descriptions of various controls in the view, binds the - controls to specific user actions and behaviors, and describes the layout and - interactions of each control. - - - - - - - - Reset pipeline has risk, this operation is a direct operation to port in current node, the - port on the other node cannot get the change. - - - - - Only the following occasions of calling are valid: 1. no bp is - running or the only bp is quitting. 2. calling from the main thread or a - thread the current bp is running on. - - - - - A sets of complex logic designed for running in multi threads environment. Warning: do not - run a instance in multi threads more than once. - - - - - TimeSpanProvider: uses a bound TimeSequence and TimeSourceProviderBase to publish span - ticks. Each OnSpanTick advances the sequence; when sequence ends provider unsubscribes. - - - - - True if there is at least one unconsumed span tick (PendingSpanCount > 0). - - - - - Number of span ticks not yet consumed by Wait ( > 0 means last tick not waited). - - - - - - - - Tick passed since binded time source. - - - True if the span provider is working. False if time is over (the sequence ended). - - - - - Efficient adaptive backoff strategy that dynamically selects optimal backoff methods based on - system load and success rate - - - - - Gets the currently used backoff method (for debugging/monitoring) - - - - - Gets the globally considered optimal backoff method - - - - - Creates a new adaptive backoff strategy instance - - - - - Gets global statistics for the specified strategy (for monitoring) - - - - - Called after CAS failure, performs backoff and may switch strategies - - - - - Called after CAS success, resets state - - - - - Evaluates and updates the global optimal strategy - - - - - Fast pseudo-random number generator (LCG) - - - - - Performs the actual backoff operation - - - - - Checks whether global strategy evaluation should be performed - - - - - Determines whether strategy should be switched - - - - - Switches to the currently considered optimal strategy - - -
-