Пример #1
0
        //
        // Set Buffer Data
        //

        private static void SetBufferData(Renderer renderer, int target, int bufferId,
                                          int bufferOffset, bool discard,
                                          IntPtr dataPointer, int dataLength)
        {
            var state      = (State)renderer.UserData;
            var dataBuffer = BufferSerializer.Convert(
                dataPointer, dataLength, state, bufferId);

            renderer.Send(false, () =>
            {
                GLES20.glBindBuffer(target, bufferId);

                if (discard)
                {
                    var sizeUsage = state.BufferSizeUsage[bufferId];
                    GLES20.glBufferData(target, sizeUsage[0], null, sizeUsage[1]);
                }

                GLES20.glBufferSubData(target, bufferOffset, dataLength, dataBuffer);
            });
        }